Ver Mensaje Individual
  #1  
Antiguo 10-11-2006
bohemioloco bohemioloco is offline
Miembro
 
Registrado: nov 2006
Ubicación: Tarija - Bolivia
Posts: 20
Reputación: 0
bohemioloco Va por buen camino
Unhappy Error al llenar tabla desde archivo txt

Saludos
En un anterior hilo pregunte si era posible llenar una tabla (socios) con datos de un archivo txt y Neftali me respondio:

Cita:
Empezado por Neftali
(1) Sí.
(2) Básicamente se trata de ir leyendo la información del Archivo de texto (previamente cargado en un TStrings, por ejemplo) y luego ir haciendo Insert/Update (vía TTable o TQuery) en la tabla.
Siguiendo su consejo (el cual agradezco mucho) y algunas cosas que investigué por mi cuenta utilicé un Tmemo donde cargo el contenido del archivo txt para ir leyendo la información y un Tquery para hacer el llenado de la tabla (porque me pareció el metodo más facil para mi que soy totalmente nuevo en delphi )

Resumiendo me salió el siguiente código


Código Delphi [-]
procedure TfrmNumeroUno.iM1Click(Sender: TObject);
var y,d,a,ci,num,nom,cat:string;i,j,x,k:integer;
v: array [1..4] of string;
begin
query1.Close;
Query1.ExecSql;
frmNumeroUno.Memo1.Lines.Clear;
frmNumeroUno.OpenDialog1.Title:='Exportacion de Socios'; //ABRE DIALOGO Y BUSCA EL ARCHIVO
frmNumeroUno.OpenDialog1.DefaultExt:='.txt';
frmNumeroUno.OpenDialog1.InitialDir:='C:\windows\escritorio\BD';
frmNumeroUno.OpenDialog1.Execute;
frmNumeroUno.Memo1.Lines.Clear;
frmNumeroUno.Memo1.Lines.LoadFromFile(frmNumeroUno.OpenDialog1.FileName); //cuenta las lineas del archivo de texto
y:='';
for i:=0 to frmNumeroUno.Memo1.Lines.Count do //desde 1 hasta elnumero de lineas del texto
begin
           x:=1;
           d:='';
           for k:=1 to 4 do //desde uno hasta numero de campos
           begin
                 v[k]:=''; //vector de valores
           end;
 
          y:=frmNumeroUno.Memo1.Lines.Strings[i]; 
 
          for j:=1 to length(y) do 
          begin
                 if y[j]<>'|' then
                 begin
                        d:=d+y[j];
                 end
                 else
                begin
                       v[x]:=d;
                       inc(x);
                       a:=d;
                       d:='';
               end;
           end; 
 
          ci:=v[1]; //dato del primer campo
          num:=v[2]; //dato del segundo campo
          nom:=v[3]; // dato del tercer campo
          cat:=v[4]; // dato del cuarto campo
          //Aqui tiene que cargar los datos en la tabla//
         frmNumeroUno.Query2.SQL.Clear;
         frmNumeroUno.Query2.SQL.Add('insert into socios (ci,Ncta,Nombres,Calf) values('+ci+','+num+','+nom+','+cat+')');
         Query2.Close;
         frmNumeroUno.Query2.Active:=true;
         Query2.ExecSql;
end 
end;
El problema es que en tiempo de ejecución me sale el siguiente error

"Project miproyecto.exe raised exception class EDBEngineError whyt message Invalid use of keyword"

o sea me da error al encontrar un espacio en blanco dentro del texto.

¿Que me falta? ¿que me sobra? ¿Que hice mal? Alguien me puede aconsejar

Les agradezco de antemano su ayuda

Última edición por dec fecha: 10-11-2006 a las 03:20:24.
Responder Con Cita