![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
En el caso de guardar en memoria tablas pequeñas y de pocos (o nulos) cambios, es también una solución que utilizo a veces. En nuestro caso hablamos de "tablas en caché" o "tablas en memoria"; Lo que sí me parece ineficiente es volcar eso a arreglos, como ya te he comentado cuando tienes componentes que te hacen ese trabajo. Si el TClientDataSet no te convence, otra opción es lo que se conocen como "MemoryTables"; El nombre creo que lo dice todo. Y la idea fundamentamente es la misma que la tuya y que la de TClentDataSet. Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#2
|
|||
|
|||
Esta Bien Amigo
Me rindo a tu experiencia y no voy yo a salir a decir que los arreglos son la mejor solucion ....
explorare tus alternativas pero perdona la duda , que es eso de MemoryTables es una propiedad un componente a usar que es y donde esta ...por otro lado con lo del clientdataset ya lo vi y lo estoy probando pero perdona sabes de un hilo por alli para aprender a usarlo, ya se que se manipula igual que un data set normal pero lo que quiero es en tiempo de ejecucion cargarlo con un query y luego eliminar dicho query para usarlo en otra cosa, se que me entiendes pero por sia un ejemplo coloco en la aplicacion un objeto query y 2(o mas) clientdataset entonces en el on activate del form principal digo .... query.close; query.sql.clear; query.sql.add('SELECT campo1,campo2,campo3 from tabla1'); query.open; // aca cargo este resultado al clientdataset //pero seria algo asi como clientdataset1.datasourse:=query; //esto que escribo seguro es una barbaridad..... //y eso es lo que no se hacer....... //luego de cargado query.close; //para despues .................. query.close; query.sql.clear; query.sql.add('SELECT elemento1,elemento2,elemento3 from OtraTabla'); query.open; clientdataset2.datasourse:=query; // segunda vez que escribo la barbaridad esta..... //y al fin tataaaaaaaaaaaaaa..... query.close; //y me queda libre para usarlo despues como de hecho ya lo usa mi aplicacion para borrar conjuntos de datos ...... la linea de asignacion para enganchar, colgar, asociar el clientdataset al query es lo que no se ya me esta dando pena tanta preguntadera, pero citando al chavo del Ocho .....pos que hago si yo no sabo........ Última edición por JULIOCTORRESG fecha: 01-03-2007 a las 22:12:01. |
#3
|
||||
|
||||
Cita:
Yo soy el primero que te digo que no hay una solución "mejor" para todos los casos; A veces para un caso particular lo mejor es una solución "diferente". Pero si puedes probarlo, así ya tendrás 2 opciones para decidir. En cuanto a las MemoryTables, es un conepto similar al que estamos hablando. Son componentes que trabajan con tablas en memoria. Normalmente lo que hacen es cargar los datos de una consulta o una tabla a un DataSet en local y luego desconectarse de la Base de Datos. Aquí puedes encontrar algunos; Las RxLib (no se si trabajas con ellas) también tienen uno y las Quantum (estan son de pago) tambien uno muy bueno. Creo que engo algun ejemplo por aquí de TClientDataset de alguna vez que hemos estado hablando del tema, déjame que lo busque y lo subo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Según tu último mensaje, quizás una función de este estilo te sirva:
hecho esto, ahora tienes 2 formas de usarla:
En definitiva, puedes crear tantos querys como quieras, pero sin tener los componentes en tu ventana dando la lata. Edito otra vez más: Si una query va a estar ligada a un Grid, por ejemplo, para mostrar datos al usuario, no reutilices esa query para nada, déjala para ese menester nada más. Si quieres tener una query, que solo se usa en determinadas ocasiones, y sabes que nunca va a solaparse su ejecución con otras que usen esa misma query, podrías usar una variante de esa función:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 02-03-2007 a las 12:48:09. |
#5
|
||||
|
||||
Bueno, al final encontré el ejemplillo y modificándolo un poco ha quedado así.
Son varios (3) TClienDataSet que se cargan a partir de un único ADOQuery; Además un par de ejempillos sencillos de cómo filtrar y ordenar. El ejemplo completo lo tienes en el FTP público. Con el nombre: [Ejemplo] Varios_ClientDataSet.zip Espero que te sea últil. NOTA: Si vas ejecutando los botones en orden de arriba hacia abajo, irás viendo los resultados.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
|||
|
|||
Que buen ejemplo muchas graciaas
Agradecido estoy y veo cosas que antes no usaba ....pero una vez mas la idea era no usar componentes para almacenar datos ....(un error mio segun veo) pero insisto y ahora tengo que usar ademas del clientdataset el objeto DataSetprovider ........caramba.....me persiguen los componentes, se que ya esta fuerte pero no puedo conectarme al query sin el DataSetprovider en tiempo de diseño se puede con boton secundario assing local data y pregunto acaso no se puede en ejecucion ....
si no es asi que caray a por cierto no quiero insertar muchos componentes ajenos porque mi intencion es migrar mi aplicacion a Delphi 2006 sin mayores problemas ...de hecho ya tengo uno para acceso a datos no uso BDE ni ADO uso uno de la gente de corelab .....SDAC .... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
llenar un combobox | fabian20s | Conexión con bases de datos | 13 | 30-11-2007 18:54:56 |
Consulta con array | tgsistemas | SQL | 1 | 30-05-2005 20:23:41 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
Necesito llenar un DBGrid desde una consulta con dbexpresss | vivim82 | Varios | 5 | 05-05-2004 18:31:02 |
![]() |
|