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 TXT a FireBird (https://www.clubdelphi.com/foros/showthread.php?t=35902)

mRoman 26-09-2006 05:21:09

Importar de TXT a FireBird
 
Hola que tal.

Estoy buscando como importar un archivo TXT a FireBird, he encontrado sugerencias de utilizar IBExport, pero no requiero eso, necesito que mi aplicación haga la operación, que el usuario realice la importacion cuantas veces lo necesite.

También he encontrado un código que me podria ayudar un poco, pero los datos los obtiene desde Excel, y no quiero q el usuario tenga que cargar el archivo texto a este programa, sino que desde mi aplicación utilizando el componente OpenDialog, lo pueda importar sin ningun problema para el usuario. Les comento q el archivo texto no tiene comas ni nada por el estilo que separe un dato del otro.

Espero que alguien me pueda ayudar con un código de ejemplo en Delphi 6, que me ayude a orientarme

Casimiro Notevi 26-09-2006 09:35:14

Pero tendrás que decir, al menos, qué formato tiene el texto... porque adivinos no somos... todavía ;)

raulnunhez 26-09-2006 11:28:51

podrías pegar parte del texto para saber exactamente qué es lo que deseas importar y el formato que tiene.

saludos

jachguate 26-09-2006 18:19:49

Suponiendo que tenes un texto de columnas de ancho fijo, y algunas otras cosas que se entenderán con el codigo, te dejo un pequeño ejemplo:

Código Delphi [-]
  if OpenDialog1.Execute then
  begin
    qInsert.SQL.Text := 'insert into tabla values (:campo1, :campo2);';
    Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
    for I := 0 to Memo1.Lines.Count - 1 do
    begin
      qInsert.ParamByName('campo1').AsString := copy(Memo1.Lines[i], 1, 10);
      qInsert.ParamByName('campo2').AsString := copy(Memo1.Lines[i], 11, 4);
      qInsert.ExecQuery;
    end;
  end;

Hasta luego.

;)

mRoman 27-09-2006 04:05:37

Sorry
 
Antes que nada gracias por sus aportaciones y comentarios a mi duda. Ahora pasare a pedirles una disculpa por mi falta de informaciòn....este archivo es de columnas fijas....ahi les va algo del texto de ese archivo:
1814067000114067101004060LAS PALMAS DOMICILIO CONOCIDO....ETC
1814067000114067102004066IXTAPA DOMICILIO CONOCIDO....ETC

y asi se va hasta ocupar mas o menos 200 registros aproximadamente...

Bueno espero haberme explicado....son de ancho fijo, como pueden ver no esta separado por ningun caracter en especial.

Y Gracias "jachguate" por tu código, lo hechare a andar....y luego te comento

GRACIAS MUCHACHOS....!

TJose 30-09-2006 20:10:54

tablas externas
 
Hola mRoman

debes utilizar tablas externas, estas tablas son archivos de texto de ancho fijo, que pueden ser declaradas directamente a nivel base de datos, y son tratadas como cualquier otra tabla de mi base de datos (no exactamente). Es importante tener en cuenta que cuando se declara una tabla externa todos sus campos son de tipo char(n). No funciona (al menos cuando yo la utilicé) con campos con separadores ("tab", ";", ",", etc).
Ahora no necuerdo bien la sisntaxis, pero era más o menos así:ç

Código SQL [-]
create table mitabla external file "miarchivo.txt"(
  cod char(4),
  nombre char(50),
  apellido char(35),
  fecha char(8));

si miarchivo.txt existe, y tiene la misma estructura que definimos con create table, podremos ya hacer un
Código SQL [-]
select * from mitabla
. De lo contrario si no existe miarchivo.txt firebird (interbase) lo creará, de esta forma podremos utilizar este medio para exportar datos, haciendo un select sobre otra tabla (con los mismos campos que mi tabla externa) y volcándolos sobre la tabla externa.

Además deberás tener en cuenta los permisos que se hayan dado en el archivo de configuración de firebird.
miarchivo.txt podrá resisdir en cualquier directorio, o sólo en un directorio específico. Esto también depende del la configuración de firebird.

Culquier otra duda
Saludos

TJose


La franja horaria es GMT +2. Ahora son las 19:26:36.

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