Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Duda con estado de consulta (https://www.clubdelphi.com/foros/showthread.php?t=49744)

m.ruiz 29-10-2007 12:32:35

Duda con estado de consulta
 
Buenos días a todos, como siempre ultimamente acudo a vosotros para que me echéis una mano con esto de la programación delphi.
A ver si alguien me puede echar una mano con esto.

¿cómo puedo comprobar el estado de una consulta?
Por poner un ejemplo, quiero poner un boton que haga lo siguiente: si la consulta esta abierta muestrame unos datos y si esta cerrada otros.
Mi problema es que no se representar la sentencia que dice si la consulta está abierta o cerrada. He visto que el componente adoquery, tiene una propiedad llamada state. No se si van por ahí los tiros, pero he intentado hacer algo asi:

If (Datamodule.adoquery1.state = dsopen) then ...

Pero claro, me da un pedazo de error.

Si alguien puede echarme una mano, sería estupendo.
Muchas gracias por adelantado.
saludos! :D:D

ozsWizzard 29-10-2007 12:37:18

No sé si es exactamente lo que buscas pero creo que la podrías preguntar por la propiedad active (que es un booleana).

Código Delphi [-]
if Datamodule.adoquery1.active then ...

m.ruiz 29-10-2007 12:40:41

No exactamente. Yo no quiero comprobar si la consulta está activa, ya que yo en mi datamodule la propiedad active siempre está a True. Lo que quiero es comprobar si está abierta (open) o cerrada (close).

no se si me estoy explicando correctamente...
Gracias de todas formas por la aportación.

ozsWizzard 29-10-2007 12:49:09

Cierto.

Para la propiedad state, buscando en la ayuda de delphi a mí no me sale el valor dsOpen, sin embargo me aparece dsInactive que es para saber si está "closed", supongo que te valdrá.

m.ruiz 29-10-2007 12:51:27

Oleee...Perfecto. Esto es lo que necesitaba.
Muchas gracias. Dos ojos ven mas que uno, yo he mirado en la ayuda pero me debo haber saltado esa parte.

Un saludo!.:D

Lepe 29-10-2007 14:49:06

Cita:

Empezado por m.ruiz (Mensaje 241903)
No exactamente. Yo no quiero comprobar si la consulta está activa, ya que yo en mi datamodule la propiedad active siempre está a True. Lo que quiero es comprobar si está abierta (open) o cerrada (close).

Vaya lío tienes.

Si miras el código fuente de "Open" y de "Close" verás algo así:
Código Delphi [-]
procedure TQuery.Close;
begin
  Active := false;
end;

procedure TQuery.Open;
begin
  Active := True;
end;
En la ayuda dice:"dsInactive -> Dataset is closed, so its data is unavailable"
que es equivalente con preguntar:
Código Delphi [-]
if not query1.Active then
  //no está abierta.

Por tanto, la primera respuesta de ozsWizzard, es totalmente válida.

Si tu consulta está siempre "Active" entonces jamás estará en estado dsInactive.

Espero te aclare los conceptos, Saludos

m.ruiz 29-10-2007 16:46:27

Muchas gracias por la aclaración. Aún no soy muy experta en delphi. y claro hay conceptos que aún no tengo muy claros.

muchas gracias de nuevo. poco a poco voy avanzando.
saludos!


La franja horaria es GMT +2. Ahora son las 17:20:08.

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