PDA

Ver la Versión Completa : ibase_query


micayael
10-09-2005, 00:48:00
Hola gente.

Estoy trantando de crear un archivo de funciones para firebird y encuentro en el manual oficial que la funcion ibase_query dice lo siguiente:

1. Si existe error devuelve false
2. Si se realizó con exito y existe un conjunto de resultados (posiblemente vacio) devuelto por la consulta SQL devuelve un identificador de resultado
3. Si no hay resultado retorna TRUE

Entre el 2 y el 3. El dos dice que si existe un conjunto de resultado pero tambien dice que puede ser vacio y 3 dice que si no hay resultado devuelve false.

Es un poco ambiguo el retorno. Es decir ambos dicen que pueden retornar vacio y supuestamente devuelven resultados diferentes.

Alguien entiende eso?

roman
10-09-2005, 03:59:06
No utilizo estas funciones pero creo que se refiere a esto:

Las consultas SQL son de dos tipos:

(A) Las que regresan un conjunto de resultados (incluso si no hay registros) como SELECT

(B) Las que no regresan un conjunto de resultados como INSERT, DELETE, UPDATE

Cualquiera que sea el tipo, la función devuelve FALSE si hubo algún error. (Punto 1)

Si no hubo errores entonces:

Consultas de tipo A devuelven un identificador incluso si no hubo registros que cumplieran las condiciones (punto 2)

Consultas de tipo B devuelven TRUE (punto 3)

Si necsitas determinar qué te regresa puedes hacer algo así:


$rs = ibase_query($sql);
if (is_resource($rs))
echo "La consulta fue de tipo SELECT";
elseif ($rs == true)
echo "La consulta no fue de tipo SELECT"
else
echo "Hubo errores en la consulta"


// Saludos

micayael
12-09-2005, 19:42:13
AAAAhhh. eso aclara mucho. creo que tienes razon.

Muchas gracias amigo. ;)