Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Verificar Apertura de Query (https://www.clubdelphi.com/foros/showthread.php?t=34601)

anghell77 15-08-2006 04:31:52

Verificar Apertura de Query
 
Hola a Todos Compañeros.....

A ver....me siento un poco contrariado por mi....no se como se le llame...pero ahi va..

¿Cómo puedo saber si un Query esta abierto?...el caso es el siguiente, debo enviar de la consulta que se ejecuta a un reporte todos los datos que se visualizan en pantalla, por lo tanto, debo evaluar primero si la consulta está abierta,

He probado este codigo:

Código Delphi [-]
If(Inventario_Escolar.HandleAllocated=true) and (DataModule2.Inv_Escolar.IsEmpty=TRUE)then
ShowMessage('No puede Imprimir Datos. Necesario Ejecutar la Consulta ')
else
begin
Label9.Caption:='Inventario General';
 if Application.MessageBox('¿Es Correcta la Selección de la Consulta?','Biblioteca', MB_YesNo+Mb_IconQuestion)=IDYes then
   Reporte_Inv_Escolar.QuickRep1.Preview
end;

La primera verificación ubica que pestaña de un componente PageControl está activa, la segunda es la verificación es la que les comento.
Ahora, corríjanme si estoy mal, o bien si hay alguna opción más, las opiniones son bienvenidas....
Agradeciéndoles....

{Saludos}

roman 15-08-2006 05:35:38

IsEmpty te dice si el resultado de la consulta devolvió algún registro y muy posiblemente sólo pueda llamarse si la consulta está abierta. Lo más directo sería:

Código Delphi [-]
if DataModule2.Inv_Escolar.Active then
  ...

// Saludos

anghell77 15-08-2006 05:46:55

Gracias Román; fijate que no evalúa si se ha ejecutado el Query...se va directamente al mensaje
Código Delphi [-]
if Application.MessageBox('¿Es Correcta la Selección de la Consulta?','Biblioteca', MB_YesNo+Mb_IconQuestion)=IDYes then
   Reporte_Inv_Escolar.QuickRep1.Preview
.
He seguido con el código que puse anteriormente, y me ha funcionado; me imagino que no es el adecuado, pero como dices, que verifica la devolución de registros, pues, he estado haciendo "necesaria" la ejecución de la consulta mediante un botón... creo que con ello ya puedo dejar el código que tengo no?

Yo, igualmente, sigo en apertura de recepción de mensajes para ver si hay otras formas de realizarlo...
Por lo pronto, creo que me funciona el código.

{Saludos}

roman 15-08-2006 05:54:04

Mi error :o . Creo que basta invertir la condición:

Código Delphi [-]
if not DataModule2.Inv_Escolar.Active then
  ...

// Saludos

anghell77 15-08-2006 06:02:23

Gracias!!!! en verdad!! también mi distracción....lo mismo me ocurrió al utilizar

Código Delphi [-]
If(Consulta.IsEmpty=FALSE)
:pObvio que hacía todo lo contrario...

Ahora que me has ayudado, y puedes, creo que el hilo está demás...
Código Delphi [-]
Hilo:=Close;
:D:D

Gracias Román.

{Saludos}


La franja horaria es GMT +2. Ahora son las 08:19:58.

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