Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Reserva de memoria... (https://www.clubdelphi.com/foros/showthread.php?t=52924)

andresenlared 04-02-2008 23:39:18

Reserva de memoria...
 
Hola a todos y muchas gracias por toda la ayuda que he obtenido en todos los temas.

Ahora tengo una pregunta.

tengo la siguiente funcion: el .pas que implementa la funcion no lo tengo, pero la tengo que usar por las caracteristicas del codigo fuente

QryOpenSQL(QryProcs, 'Select * from tabla1');

QryProcs es un Tquery

La funcion lo que hace es abrir QryProcs con el SQL que le pasa a la misma funcion. Lo que necesito es obtener otro espacio en memoria que guarde el resultado de QryProcs para que pueda usar nuevamente la funcion con otra fuente de datos.

Algo parecido a

Tquery2:=QryProcs; //usaria Tquery2 para procesar otra informacion
Me perdonan por la linea de codigo anterior se que no funciona puesto que si cambia la fuente de datos de QryProcs tambien se modificaria Tquery2 y es eso lo que no quiero, solo quiero que entiendan lo que necesito.

Alguna idea?:rolleyes:

jachguate 05-02-2008 00:41:42

Visto lo que has dicho, por que no usar una nueva instancia de TQuery para los otros datos:

Código Delphi [-]
begin
  QryOpenSQL(QryClientes, 'select * from cliente');
  QryOpenSQL(QryProductos, 'select * from producto');

Hasta luego.

;)

andresenlared 05-02-2008 14:54:59

Si es una solucion, lo que no informe en el primer mensaje, era que el objeto QryProcs que es un Tquery, es el que reconoce la funcion, ya habia intentado crear otra instancia del objeto pero me emite error.

jachguate 05-02-2008 19:04:31

Cita:

Empezado por andresenlared (Mensaje 263508)
ya habia intentado crear otra instancia del objeto pero me emite error.

Tendrías la amabilidad de indicarnos de una buena vez el mensaje de error, y otras cosas que ya hayas intentado, con sus respectivos problemas, para ver si ahorramos algo de tiempo en esto?

mil gracias <---- recomendable hacer clic!.

andresenlared 05-02-2008 20:24:56

Saludos...

Gracias a todos por su ayuda.

La idea era (digo era porque ya la solucione), hacer una copia del objeto QryProcs, ya que ese mismo objeto es reconocido por la funcion y utilizar la copia para hacer otros procesos.

En uno de los hilos decia que usar un Tstringlist para guardar los datos iniciales obtenidos en este caso por QryProcs. No queria hacer esto para evitar lineas de codigo, pero me toco.

Si quisiera saber con un ejemplo como se usa el Assing. he visto hilos pero solo comenta que es una solucion para duplicar un objeto.

Gracias.

jachguate 05-02-2008 22:13:36

Assign es un método para "duplicar" objetos persistentes (aquellos que derivan de TPersistent), siempre que alguna de las clases sepa como "duplicarse" en la otra.

Pero no es el caso de los DataSets (entre ellos los Queryes).

De cualquier manera, sigo sin ver por qué la necesidad de utilizar una sola instancia de TQuery y luego ir dejando los datos "duplicados" por allí en otros queryes, si sería mucho mas simple, limpio y rápido utilizar tantos querys como sea necesario. Hay alternativas para esto, pero sin tener un poco mas de información de lo que VOS queres/necesitás/pretendes hacer, yo me puedo pasar escribiendo puras chorradas media hora y al final resultar que no te sirve.

Por eso te envié al hilo de la calidad de las preguntas. Espero lo hayas leido y asimilado.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 21:44:47.

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