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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2006
estopi estopi is offline
Registrado
 
Registrado: jun 2006
Posts: 9
Poder: 0
estopi Va por buen camino
Guardar datos desde un dbgrid

Hola tengo un ADOStoredProce conectado con una base de datos Informix que me devuelve la informacion y la muestro en un dbgrid, ahora quiero almacenar la informacion de algunas columnas del debgrid en mi tabla de Access. Lo que necesito saber es como hago para recorrer cada fila e ir insertandola en mi tabla de Access. Desde ya gracias por la ayuda que me puedan dar. Saludos.
Responder Con Cita
  #2  
Antiguo 17-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo normal es recorrer el DataSet asociado al Grid, y no el DBGrid directamente. El recorrido se hace con los métodos estandard (EOF, Next,...).
¿Exactamente cual es el problema? ¿Algo en particular? ¿El recorrido? ¿La inserción?
__________________
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.
Responder Con Cita
  #3  
Antiguo 17-10-2006
estopi estopi is offline
Registrado
 
Registrado: jun 2006
Posts: 9
Poder: 0
estopi Va por buen camino
Lo que estoy intentando hacer es a partir de la informacion que me devuelve el ADOStoredProc, tengo un DataSource que se asocia al ADOStoredProc y este ultimo al DBGrid. Cuando ejecuto la aplicacion la informacion es mostrada en el DBGrid, lo que quiero es tomar la info que me devuelve el ADOStoredProc y guardar algunos campos en una tabla de Access que ya tengo conectada por ADOConecction.
Responder Con Cita
  #4  
Antiguo 17-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No me has contestado a las preguntas. ¿Lo has intentado? ¿Te da algun error?

Podría ser algo así; Aquí se accede al DataSet a partir del DGBrid, porque no acabo de enterder cómo lo has conectado, pero puedes sustituir el "DBGrid2.DataSource.DataSet" por el componente de DataSet que estés utilizando.

Código Delphi [-]
  // Ir al principio del DataSet
  DBGrid2.DataSource.DataSet.First;
  // recorrido
  while not (DBGrid2.DataSource.DataSet.Eof) do begin
    // preparar el Insert
    ADOTable1.Append;
    // Acceder a los campos y guardarlos en la tabla
    ADOTable1.FieldByName('Campo1').AsString :=
      DBGrid2.DataSource.DataSet.FieldByName('Campo1').AsString;
    ADOTable1.FieldByName('Campo2').AsString :=
      DBGrid2.DataSource.DataSet.FieldByName('Campo2').AsString;
    // Guardar el registro de la tabla
    ADOTable1.Post;
    // Siguiente
    DBGrid2.DataSource.DataSet.Next;
  end;
__________________
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.
Responder Con Cita
  #5  
Antiguo 17-10-2006
Avatar de kyke_mx
kyke_mx kyke_mx is offline
Registrado
 
Registrado: abr 2006
Posts: 8
Poder: 0
kyke_mx Va por buen camino
Recorrer dataSet e isertar

Tiene razon Neftali, y si desea usar sql para insertar podria quedar asi:

Código Delphi [-]

DBGrid1.DataSource.DataSet.First;While not (DBGrid1.DataSource.DataSet.Eof) Do
Begin

  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('INSERT INTO POA (Campo1, Campo2, etc');
 ADOQuery2.SQL.Add('VALUES (:Parametro1, :Parametro2, :etc');
 ADOQuery2.ParamByName('Parametro1').Value:=DBGrid1.DataSource.DataSet.FieldByName('Campo1').value; 
 ADOQuery2.ParamByName('Parametro2').Value:=DBGrid1.DataSource.DataSet.FieldByName('Campo2').value;
...
  ADOQuery2.ExecSQL;
DBGrid1.DataSource.DataSet.Next;
End;
Responder Con Cita
  #6  
Antiguo 01-02-2008
MARLON1 MARLON1 is offline
Miembro
 
Registrado: nov 2007
Posts: 118
Poder: 17
MARLON1 Va por buen camino
hola:

espero y puedas ayudar utilize tu ejemplo pero yo utilize un query y este es mi codigo:

procedure TForm4.Button1Click(Sender: TObject);
begin
with form1 do
begin

if Form4.ModalResult = mrOK then begin
DBGrid1.DataSource.DataSet.First;
While not (DBGrid1.DataSource.DataSet.Eof) Do
Begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO cliente (clavecliente, nombre, apellido,direccion,telefono,CP,RFC,clavemaquinaria');
Query1.SQL.Add('VALUES (:cla, :nom, :ape, :dir, :tel, :c, :r, :ma');
Query1.ParamByName('cla').Value:=DBGrid1.DataSource.DataSet.FieldByName('clavecliente').value;
Query1.ParamByName('nom').Value:=DBGrid1.DataSource.DataSet.FieldByName('nombre').value;
Query1.ParamByName('ape').Value:=DBGrid1.DataSource.DataSet.FieldByName('apellido').value;
Query1.ParamByName('dir').Value:=DBGrid1.DataSource.DataSet.FieldByName('direccion').value;
Query1.ParamByName('tel').Value:=DBGrid1.DataSource.DataSet.FieldByName('telefono').value;
Query1.ParamByName('c').Value:=DBGrid1.DataSource.DataSet.FieldByName('CP').value;
Query1.ParamByName('r').Value:=DBGrid1.DataSource.DataSet.FieldByName('RFC').value;
Query1.ParamByName('ma').Value:=DBGrid1.DataSource.DataSet.FieldByName('clavemaquinaria').value;
Query1.ExecSQL;
DBGrid1.DataSource.DataSet.Next;
End;
end;
end;
end;
end.

pero al momento de ejecutarlo me sale un error de sintaxis de mysql.
ojala y me puedas responder lo mas pronto posible te lo agradeceria demasiado.
gracias por la ayuda . Saludos
Responder Con Cita
  #7  
Antiguo 01-02-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Ya te fijaste en la fecha de este hilo...
__________________
Web
Responder Con Cita
  #8  
Antiguo 01-02-2008
MARLON1 MARLON1 is offline
Miembro
 
Registrado: nov 2007
Posts: 118
Poder: 17
MARLON1 Va por buen camino
ups...

Cita:
Empezado por felipe88 Ver Mensaje
Ya te fijaste en la fecha de este hilo...
no me habia dado cuenta, espero que tu me puedas ayudar en el problema ke tengo.
gracias
Responder Con Cita
  #9  
Antiguo 01-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por MARLON1 Ver Mensaje
pero al momento de ejecutarlo me sale un error de sintaxis de mysql.
En estas líneas:

Código Delphi [-]
Query1.SQL.Add('INSERT INTO cliente (clavecliente, nombre, apellido,direccion,telefono,CP,RFC,clavemaquinaria');
Query1.SQL.Add('VALUES (:cla, :nom, :ape, :dir, :tel, :c, :r, :ma');

falta cerrar los paréntesis:

Código Delphi [-]
Query1.SQL.Add('INSERT INTO cliente (clavecliente, nombre, apellido,direccion,telefono,CP,RFC,clavemaquinaria)');
                                                                                                             ^
Query1.SQL.Add('VALUES (:cla, :nom, :ape, :dir, :tel, :c, :r, :ma)');
                                                                 ^

Bye
Responder Con Cita
  #10  
Antiguo 12-01-2015
clauheidern clauheidern is offline
Registrado
NULL
 
Registrado: sep 2014
Posts: 2
Poder: 0
clauheidern Va por buen camino
Unhappy Guardar datos desde un dbgrid

Cita:
Empezado por Neftali Ver Mensaje
No me has contestado a las preguntas. ¿Lo has intentado? ¿Te da algun error?

Podría ser algo así; Aquí se accede al DataSet a partir del DGBrid, porque no acabo de enterder cómo lo has conectado, pero puedes sustituir el "DBGrid2.DataSource.DataSet" por el componente de DataSet que estés utilizando.

Código Delphi [-]
  // Ir al principio del DataSet
  DBGrid2.DataSource.DataSet.First;
  // recorrido
  while not (DBGrid2.DataSource.DataSet.Eof) do begin
    // preparar el Insert
    ADOTable1.Append;
    // Acceder a los campos y guardarlos en la tabla
    ADOTable1.FieldByName('Campo1').AsString :=
      DBGrid2.DataSource.DataSet.FieldByName('Campo1').AsString;
    ADOTable1.FieldByName('Campo2').AsString :=
      DBGrid2.DataSource.DataSet.FieldByName('Campo2').AsString;
    // Guardar el registro de la tabla
    ADOTable1.Post;
    // Siguiente
    DBGrid2.DataSource.DataSet.Next;
  end;
me funciono bien Neftali solo que al darle "guardar"(el código lo puse en un botón) me da un registro en blanco.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
guardar datos desde DBgrib a una BD gulder Conexión con bases de datos 7 16-08-2006 23:45:44
Como Guardar Desde Un Datetimepicker A Una Base De Datos jorgeluisc Firebird e Interbase 3 27-05-2006 02:01:57
Guardar datos desde un archivo perjul SQL 0 25-04-2006 00:16:12
Problemas al guardar desde DBGrid y variable... Phacko Conexión con bases de datos 0 22-03-2005 04:54:35
Obtener datos desde un DBGRID bustio Conexión con bases de datos 3 10-06-2004 21:27:31


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