Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Pasando un TQuery de una clase a otra (https://www.clubdelphi.com/foros/showthread.php?t=30240)

Eden 12-02-2006 19:34:08

Pasando un TQuery de una clase a otra
 
Estoy trabajando con paquetes de clases en Delphi y uno de ellos contiene un objeto TQuery con el que realiza una consulta.

Estoy intentando sin demasiado exito coger ese Query y pasarselo a otra clase, como la otra clase no debe acceder a este Query directamente la forma que tengo de enviarselo es a traves del resultado de la funcion:

function consulta:Tquery;

Pero cuando recibo el resultado no se como asignarselo adecuadamente al otro Query, yo intento esto:

miQuery := claseDestino.consulta;

Pero no parece funcionar bien, alguien tiene alguna idea de como pasar el valor de un Query a otro?

roman 12-02-2006 23:27:35

Cita:

Empezado por Eden
Pero no parece funcionar bien, alguien tiene alguna idea de como pasar el valor de un Query a otro?

¿Y por qué parece no funcionar bien? Podemos entretenernos en divagaciones pero sería más fácil si nos proporcionaras dicha información.

// Saludos

Eden 12-02-2006 23:39:02

Pues me dice que el query no esta en modo edit o insert.

roman 13-02-2006 02:11:47

Bueno, pero esto nada tiene que ver con de dónde obtienes el objeto Query. Una vez que recojas el resultado en miQuery tendrás que ponerlo en modo de edición como cualquier otro dataset y no olvides que no toda consulta sql es editable pero como mínimo debes poner su propiedad RequestLive en true.

// Saludos

Eden 13-02-2006 07:23:55

Jejej, gracias, ahora ya no me da ese error y parece ser que miQuery recoje bien el TQuery que se le entrega pero, aunque no me da ningun error, no he conseguido que un dbGrid me muestre lo que contiene, que instruccion me falta??

Tengo:
Código Delphi [-]
 
Tquery { Name: miQuery}
TDatasource { DataSet:miQuery; Name:dataSource1}
TDbGrid {Datasource:dataSource1}

El db grid tiene colocadas todas las columnas correctamente ya que haciendo una consulta sql directa a la bdd si que me muestra los registros correctamente, el problema es si intento que el query en vez de acceder directamente reciba el valor de esa forma que antes he comentado, a traves de otro query que se encuentra en la clase que se encarga de los accesos a la bdd.

Porcierto de momento el codigo que tengo es este y no da error aunque tampoco me muestra en la tabla los registros:
Código Delphi [-]
   
   query1.RequestLive := True; 
   query1.Close;
   query1 := qryConsulta;
   query1.Open;


La franja horaria es GMT +2. Ahora son las 02:34:32.

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