Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Crear tabla Auxiliar (https://www.clubdelphi.com/foros/showthread.php?t=9809)

Brewster 03-05-2004 13:29:47

Crear tabla Auxiliar
 
Hola.-

Programando en Intraweb necesito crearme una tabla auxiliar en memoria para que temporalmente se me vayan almacenando los datos hasta que se le de al botón aceptar y se almacenen definitivamente en la base de datos.

Algo así como.-

public
tablaAux: TADOTable;
campo: TField;
end;

...

tablaAux:=TADOTable.Create(Nil);
tablaAux.Name:='prueba';

campo:=TField.Create(Nil);
campo.fieldKind:=(fkData);
campo:=TIntegerField.Create(Nil);
campo.FieldName:='ID_ART';
campo.Name:='ID_ART';
campo.DataSet:=prueba;

tablaAux.Open;
tablaAux.Insert;

Haciendo una traza al llegar a la instrucción tablaAux.Open me da el error de Missing Connection, pero ¿Para que necesito crearme una conexión que apunte a una BD si lo que quiero es simplemente crearme una tabla en memoria?

Muchas gracias

marto 03-05-2004 14:11:58

Es que la TADOTable no está pensada para crear tablas en memoria, sinó a través de una conexión. Prueba con TClientDataSet o con TRxMemoryTable, de las rusas.

Brewster 03-05-2004 17:07:46

Con el TClientDataSet tampoco funciona. Respecto a TRxMemoryTable no encuentro ese componente, supongo que habrá que crearlo dinamicamente, ¿Cual es la forma de crearlo y almacenar información en él?

Gracias.

Brewster 03-05-2004 19:12:41

Estoy intentando con diversos componentes intentar simular una tabla, creo que se podría hacer con un TIWList, asignandole un identificador que identifique el campo y luego el valor (y futuros valores) que contendrá.


Algo así como.-

lista.Items.Create;
lista.Items.Insert(1,'valor del campo1');
lista.Items.Insert(2,'valor del campo2');

Me da error el error al insertar: "Intervalor fuera de rango".

En todas las propiedades de TIWList no identifico cual es la que me permite "reservar" espacio de rango. ¿Existe esa propiedad o hay que hacerlo de otra manera?

roman 03-05-2004 19:15:34

¿Por qué descartaste tan rápido lo de ClientDataSets? No indicaste por qué no te funcionó pero pienso que si los puedes usar:

Usas FieldDefs para crear la estructura de campos y CreateDataSet para crear la tabla en memoria.

// Saludos

roman 03-05-2004 19:22:57

Ups. Ahora que lo veo con más detenimiento, tampoco sé por qué descartaste ADO. Puedes usar AdoDataSet. Mira este enlace:

http://groups.google.com.mx/groups?h...ublic.delphi.*

de los grupos de noticias de Borland. En el último mensaje viene incluso un ejemplo.

// Saludos

jachguate 04-05-2004 10:32:34

Hilo movido desde internet a conexión con bases de datos.

Brewster 04-05-2004 19:02:36

Al final lo he hecho con RxMemoryData y va perfectamente, salvo en una cosa, quisiera asociar los datos de ese RxMemoryData a un grid, para ello me creo el grid y un datasource.

El codigo que pongo es.-

RXMemoryData1.Active:=True;
RxMemoryData1.Open;
gridAddPedido.DataSource:=DataSource1;

Pero el grid ni se inmuta, a pesar de que compruebo que hay datos, pero el grid sale totalmente vacio.

¿Qué me falta para poder conectarlo correctamente al grid?

Gracias.

jachguate 04-05-2004 19:05:20

Y has establecido la propiedad DataSet del DataSource??

no conozco el rxMemoryData... pero que no hacer

rxmem.Active := True

es lo mismo que

rxmem.Open

realmente es necesario esto??

:confused:

Hasta luego.

;)

Brewster 04-05-2004 19:19:55

Si, por supuesto, el Dataset del datasource apunta al RxMemory Data, pero no muestra nada.

¿Qué podrá ser?


La franja horaria es GMT +2. Ahora son las 21:53:15.

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