Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2004
Brewster Brewster is offline
Miembro
 
Registrado: abr 2004
Posts: 56
Poder: 21
Brewster Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 03-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
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.
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 03-05-2004
Brewster Brewster is offline
Miembro
 
Registrado: abr 2004
Posts: 56
Poder: 21
Brewster Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 03-05-2004
Brewster Brewster is offline
Miembro
 
Registrado: abr 2004
Posts: 56
Poder: 21
Brewster Va por buen camino
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?
Responder Con Cita
  #5  
Antiguo 03-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿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
Responder Con Cita
  #6  
Antiguo 03-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #7  
Antiguo 04-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hilo movido desde internet a conexión con bases de datos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 04-05-2004
Brewster Brewster is offline
Miembro
 
Registrado: abr 2004
Posts: 56
Poder: 21
Brewster Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 04-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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??



Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 04-05-2004
Brewster Brewster is offline
Miembro
 
Registrado: abr 2004
Posts: 56
Poder: 21
Brewster Va por buen camino
Si, por supuesto, el Dataset del datasource apunta al RxMemory Data, pero no muestra nada.

¿Qué podrá ser?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:49: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
Copyright 1996-2007 Club Delphi