Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/09/2003, 01:52
Avatar de txarly
txarly
 
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 8 meses
Puntos: 2
Hola;
Creo que es bueno aprender mediante ejemplos, así que aquí debajo te pongo un par de ellos comentados:

Un saludo

Código:
<?php   
/*
Conexion a Base de Datos Oracle y ejecución de un procedimiento almacenado que hace un Select, 
los datos se presentan en una tabla (los nulos se sustituyen por casillas vacias).
*/

// suppose your stored procedure ENTIDADES.LISTA_SERVIDORES returns a ref cursor in :data

print "<HTML><BODY>";
$db = "metro.dominio.es";
$conn = OCINLogon("mb","mb",$db);
$curs = OCINewCursor($conn);
$stmt = OCIParse($conn,"begin :data:=GET_ENTIDADES.LISTA_LINEAS();end;");

ocibindbyname($stmt,"data",&$curs,-1,OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($curs);
$flag=true;

print "<TABLE BORDER=\"1\">";
//el resultset esta en data que es un conjunto de arrays asociativos 
//en el que tambien se devuelven los NULLS al pasarle el parametro OCI_ASSOC+OCI_RETURN_NULLS
while (OCIFetchInto($curs,&$data,OCI_ASSOC+OCI_RETURN_NULLS)) {
    //var_dump($data); Esto da como resultado la presentación del array en pantalla
	$vector = array_keys($data);

	//encabezados de la tabla (solo se hace la primera vez que entro en el bucle)
	print "<TR>";
	if ($flag) {
        $ncols = count($vector);
        for ( $i = 0; $i <= $ncols-1; $i++ ) {
			$column_name = $vector[$i];
			print "<TD><B>". $column_name ."</B></TD>";
		}
		print "</TR>";
		$flag=false;
	}

	//esto lo hago para cada uno de los arrays
	print "<TR>";
    for ( $i = 0; $i <= $ncols-1; $i++ ) {
		$clave = $vector[$i];
		if ($data[$clave]==NULL){
			$column_value = "&nbsp;";
		}else{
			$column_value = $data[$clave];
		}
        print "<TD>". $column_value ."</TD>";
    }
    print "</TR>";
}
print "</TABLE>";
print "</BODY></HTML>";

OCIFreeCursor($stmt);
OCIFreeStatement($curs);
OCILogoff($conn);
?>
Código:
<?php   
/*
Conexion a Base de Datos Oracle y ejecución de un procedimiento almacenado que hace un Insert, 
el procedimiento devuelve un valor autonumerico con el ID del nuevo Servidor insertado.
*/

// suppose your stored procedure info.output returns a ref cursor in :data

print "<HTML><BODY>";
$db = "metro.dominio.es";
$conn = OCINLogon("metro","metro",$db);
$stmt = OCIParse($conn,"begin :data:=GESTION_SERVIDORES.INSERTAR_SERVIDOR('999','888','888','888','888','888');end;");
$retorno = OCINewDescriptor($conn);
ocibindbyname($stmt,":data",&$retorno,10);
ociexecute($stmt);

print "VALOR RETORNADO POR LA FUNCION GESTION_SERVIDORES.INSERTAR_SERVIDOR " . $retorno;

OCIFreeStatement($stmt);
OCILogoff($conn);
?>
__________________
¿Por qué Uri Geller doblaba cucharas?