Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2005, 04:03
belen_lmvc
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 8 meses
Puntos: 0
Exclamación problema pérdida de recorset al llamar a un objeto

Hola a todos y ante todo gracias por anticipado.

Resulta que estoy desarrolando una aplicación en PHP, IIS y SQL Server y me ha surgido un fallo muy raro que explico a continuación.

Lo primero que hay que aclarar es que la aplicación se empezó a desarrollar con APACHE pero por requisitos del cliente, se desarrolla actualmente en IIS.

El cambio de APACHE a IIS se realizó satisfactoriamente a excepción de ciertos problemas con el código y variables globales que ya están solucionados.

Una vez que las dos aplicaciones (la que trabajaba sobre APACHE se ha dejado como backup) funcionan correctamente, por circustacias se debe instalar la aplicación en un servidor distinto también IIS.

En el nuevo servidor ya estaban instalados el IIS y SQL Server (misma base de datos que el anterior pero en otro servidor). Pues bien se instala PHP con la misma configuración y por arte de magía, existe un problema con un recorset que desaparece y que no ocurre en los dos anteriores servidores.

La verdad es que tuve alguna dificultad para instalar de nuevas el PHP pero y al final para que funcionara, la única diferencia que se observa en el php.ini de los dos servidores IIS, es que en el que funciona está activada la extensión sqlite y en la otra no.

Una vez explicado lo raro del caso, os muestro el código que da error.

function RecogerDatos()
{
$datos = array();
$consulta = " SELECT que me devuelve más de un registro";
$resultado = mssql_query ($consulta);

if ($resultado == 0)
{
echo "Error en la consulta"
exit();
}

if ($resultado!=1)
{
while ($fila=mssql_fetch_array($resultado))
{
$dato_i = new Dato($fila['Id']);
array_push($datos,$dato_i);
}
}
return $datos;
}

Donde se pierde el recorset $resultado es en la primera llamada al constructor Dato (función que realiza una consulta donde con el identificador que he recogido, obtengo datos más concretos de este id).

Bien, otra cosa extraña que un proceso parecido se realiza justo antes a la llamada a esta función y no se pierde el recorset correspondiente.

Como veis todo esto es muy extraño y después de probar a cambiar el código de tal forma que sólo cree un objeto y llamar a un función que me devuelva los datos tantas veces como se necesite (en cuanto creo ese objeto otra vez se pierde), estoy desesperada porque en otra parte de la aplicación se realiza la misma llamada y no pasa nada.

Me podeís dar una idea de cual puede ser el error, si en la base de datos, en la configuración de php, en la llamada al objeto?

Estoy bastante perdida con este error asi que cualquier ayuda es buena, un saludo y si yo puedo ayudar en algo, lo haré

Gracias