Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2004
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 151
Poder: 22
jourdan Va por buen camino
Resultado de un select vacio

Hola a todos, ojala alguien me pueda ayudar, estoy desarrolando una
aplicacion en la que el telefono del cliente es el identificador del
mismo, tengo un edit y un boton en donde se escribe el telefono, se
hace click en el boton y se ejecuta un codigo el cual pasa el numero
de telefono como parametro y busca el nombre del cliente al que
corresponde ese telefono, lo que necesito hacer son dos cosas:

1.- Si el resultado del select es nulo, es decir no regresa ningun
valor abrir una forma para capturar un nuevo cliente.

2.- Si regresa mas de un valor abrir una forma en donde se pueda
escoger el nombre de uno de los varios clientes asignados a ese
telefono.

Mi duda es como puedo conocer una variable o algo de tal amnera que
lo pueda utilizar asi:

si resultado_del_select = 0 (null) then abre forma nuevo cliente
si resultado_del_select > 1 then abre forma y enseña los clientes
disponibles.

De antemano muchas gracias y saludos
__________________
Alejandro Jourdan
Responder Con Cita
  #2  
Antiguo 20-03-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Pues lo cierto es que no das demasiados datos sobre el tema (como que componentes usas para lanzar al query), pero, sea como sea, para saber qué numero ha devuelto tienes que consultar su propiedad RecordCount.
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 20-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por marto
...para saber qué numero ha devuelto tienes que consultar su propiedad RecordCount.
Bueno, esto será cierto para bases de datos estilo Paradox y demás, pero para bases de datos transaccionales como Interbase/Firebird, dependerá mucho de los componentes de conexión utilizados y, seguramente, el valor de RecordCount no será correcto.

Para saber si una consulta NO devuelve valores, has de mirar el método IsEmpty del Query (creo que todos los componentes Query de Delphi la tienen, otra cosa será si utilizas componentes externos, que ya no lo aseguraría) haciendo algo similar a esto:

Código:
  Query.Open;
  if Query.IsEmpty then
     // abro formulario de entrada de registros
  else
     // lo que sea
Para saber seguro el número de registros que devuelve una consulta, creo que lo mejor que puedes hacer es lanzar una consulta con un count, validar que devuelva valores (sino devuelve presentas el formulario de altas) y merar el numero de registros (si es superior a 1, muestras el formulario de eleccion, volvuendo, en cualquier caso, a lanzar la consulta sin el Count)

Espero te sirva
Responder Con Cita
  #4  
Antiguo 20-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por cadetill
Para saber seguro el número de registros que devuelve una consulta, creo que lo mejor que puedes hacer es lanzar una consulta con un count, validar que devuelva valores (sino devuelve presentas el formulario de altas) y merar el numero de registros (si es superior a 1, muestras el formulario de eleccion, volvuendo, en cualquier caso, a lanzar la consulta sin el Count)
Ciertamente para muchas bases de datos es mejor esta opción para conocer el número de registros. Si no mal entiendo la razón por la cual RecorCount falla es porque el servidor de bases de datos manda los resultados conforme los vamos requiriendo de manera que RecordCount no será preciso sino hasta que recorramos todos los registros, lo cual puede ser muy costoso.

Sin embargo, en este caso particular es de esperar que el número de registros por número telefónico se pequeño- ¿cuántos pueden vivir en una misma casa? -de manera que podría evitarse la consulta con count haciendo un Query.Last para que RecordCount sea correcto.

// Saludos
Responder Con Cita
  #5  
Antiguo 22-03-2004
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 151
Poder: 22
jourdan Va por buen camino
Muchas gracias por sus respuestas y perdón por mandar tan poca información, la aplicación la estoy desarrollando con firebird 1, delphi 6 y utilizo los ibx.

Pense que podias ser con count pero no queria hacer dos consultas, la aplicacion la estoy desarrolando para cliente / servidor, voy a probar tambien con Query.IsEmpty para que abra la forma de captura.

Nuevamente muchas gracias y saludos
__________________
Alejandro Jourdan
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:51:23.


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
Copyright 1996-2007 Club Delphi