Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Importar de Excel a InterBase (https://www.clubdelphi.com/foros/showthread.php?t=475)

Kompac 15-05-2003 17:04:43

Importar de Excel a InterBase
 
Hola a todos, tengo un pequeño problema a la hora de importar de excel a interbase, bueno les cuento en un TStringGrib consigo leer el fichero de excel el cual tiene 60 columnas y n registros siempe, el problema esta en que no doy como puedo ir leyendo del TStringGrib fila por fila y asignarlo a dos IBQuery para que los datos se almacenen en dos tablas diferentes...

Agradeceria y me ayudaran con este pequeño problema...Trabajo con D5E & IB6 W2KP

Gracias:D

Kafu 16-05-2003 09:31:52

Creo que puedes acceder a los valores de cada celda mediante la propiedad cells[columna, fila]. Si pones en el sql de insercion los parámetros en el miso orden en que están sus valores en las columnas bastaría con recorrer el stringgrid y asignar params[indice].value := cells[indice, fila]. O crearte un record o una clase que se encargue de hacer corresponder valores de celda a parámetros. Bueno, hay mil formas de hacerlo.
Eso en el supuesto de que lo quieras hacer desde programa, si simplemente quieres exportar los datos una vez también puedes grabar el xls como dbf y luego usar el datapump para pasarlo a interbase. Espero no haber añadido tinieblas a tu duda. Un saludo,







F.T.G.

FRANKER 16-05-2003 10:44:32

¿Por qué no importas directamente desde la hoja de Excel?
De paso que importas los datos desde excel, puedes pasarlos directamente a interbase. La Forma de hacerlo seria mas o menos esta:

Código:

Var
  Actual : Integer;
begin
...
Articulos.QInsert.SQL.Clear;
Articulos.QInsert.SQL.('insert into TABLA(FLD1,FLD2,FLD3) values(:CAMPO1,:CAMPO2,:CAMPO3');
For Actual := 1 To 30 Do
Begin
with Articulos.QInsert do
    begin
      Params.ByName('CAMPO1').value:=Excel.Cells[Actual,1].Value;
      Params.ByName('CAMPO2').value:=Excel.Cells[Actual,2].Value;
      Params.ByName('CAMPO3').value:=Excel.Cells[Actual,3].Value;
      ExecQuery;
    end;
end;
...

La Forma de Hacerlo desde El StrinGrid seria muy similar.

Saludos y Suerte!!!

Kompac 16-05-2003 14:24:23

Gracias Franker probe de esta manera y funciono voy a modificarlo para que funcione con es TStringGrib y si funciona te aviso OK:D


La franja horaria es GMT +2. Ahora son las 06:43:41.

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