Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Resultado vacío [TQuery] (https://www.clubdelphi.com/foros/showthread.php?t=45356)

senda 29-06-2007 20:09:06

Resultado vacío [TQuery]
 
Hola quería saber qué devuelve un TQuery cuando no encuentra ningún campo que "encaje" con las condiciones impuestas en la consulta. Es decir, por ejemplo si buscamos en una tabla los clientes menores de 25 años y no hay ninguno ¿que devuelve TQuery? Muchas gracias.

egostar 29-06-2007 20:13:16

Cita:

Empezado por senda
Hola quería saber qué devuelve un TQuery cuando no encuentra ningún campo que "encaje" con las condiciones impuestas en la consulta. Es decir, por ejemplo si buscamos en una tabla los clientes menores de 25 años y no hay ninguno ¿que devuelve TQuery? Muchas gracias.

Nada:rolleyes:

Si ligas un dbgrid a la consulta veras solo una linea en blanco.

Salud OS.

senda 29-06-2007 20:27:32

Cita:

Empezado por egostar
Nada:rolleyes:

Si ligas un dbgrid a la consulta veras solo una linea en blanco.

Salud OS.

Entonces ¿el resultado de esta condición sería cierto?

Código:

Query1.Fields[0].AsString = ''

delphi.com.ar 29-06-2007 20:38:00

Devuelve un dataset vacío, sin datos. Si tu duda es como saber desde código que no retornó datos, puedes usar la propiedad IsEmpty de los TDataSet.

Saludos!

jhonny 29-06-2007 20:39:52

Cita:

Empezado por senda
Entonces ¿el resultado de esta condición sería cierto?

Código:

Query1.Fields[0].AsString = ''

Si, el campo que esta en la posición 0 es String si.

Esta también es correcta en algunos DataSets,
Código Delphi [-]
Query1.RecordCount = 0;
O también,
Código Delphi [-]
Query1.IsEmpty;
O también,
Código Delphi [-]
qClase.Fields[0].IsNull;

delphi.com.ar 29-06-2007 20:44:42

Cita:

Empezado por jhonny
Si, el campo que esta en la posición 0 es String si.

Esta también es correcta en algunos DataSets,
Código Delphi [-]
Query1.RecordCount = 0;
O también,
Código Delphi [-]
Query1.IsEmpty;
O también,
Código Delphi [-]
qClase.Fields[0].IsNull;

Es importante tener en cuenta que un dataset puede retornar datos y el primer campo ser nulo, simplemente porque ese campo para ese registro no tiene datos.

senda 29-06-2007 20:48:34

Cita:

Empezado por delphi.com.ar
Es importante tener en cuenta que un dataset puede retornar datos y el primer campo ser nulo, simplemente porque ese campo para ese registro no tiene datos.

Ok, muchas gracias (y gracias x la advertencia, lo tendré en cuenta xq no había caído). Había olvidado por completo el método RecordCount.

jhonny 29-06-2007 21:03:40

Cita:

Empezado por delphi.com.ar
Es importante tener en cuenta que un dataset puede retornar datos y el primer campo ser nulo, simplemente porque ese campo para ese registro no tiene datos.

Tienes razón, si me pongo a autoanalizarme me doy cuenta que al final, no sabia si senda quería saber si en el campo de posición 0 había algo o si la pregunta era para el query como tal... quizá por eso puse las dos cosas :), menos mal estaba federico que pudo aclarar el asunto :D.

//Paraguay 5 - Colombia 0 :'(.

delphi.com.ar 29-06-2007 21:21:56

Cita:

Empezado por senda
Ok, muchas gracias (y gracias x la advertencia, lo tendré en cuenta xq no había caído). Había olvidado por completo el método RecordCount.

¿Vale otra aclaración? :D

Ten en cuenta que RecordCount puede ser un método poco óptimo para saber si la consulta no retornó datos, porque si verdaderamente retornó una buena cantidad de registros, y la consulta solo trajo la primer página de registros, necesita consultar todas las páginas para saber la cantidad total de registros. Como extra esta propiedad no necesariamente esta implementada en todos las clases descendientes de TDataSet.

Saludos!

jhonny 29-06-2007 21:53:20

Conclusión: Usa IsEmpty :D


La franja horaria es GMT +2. Ahora son las 13:15:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi