Por favor URGENTE. Importação de um arquivo .TXT

14/02/2003

0

Pessoal não entendo o que está errado, estou tentando importar um arquivo .txt e não grava nada. O que pode ser ? Alguém pode me ajudar ?

While not Eoln(arq) do
begin
ReadLn(arq,entrada);
// IbtProcMedData.Insert;
V_CODIGO := Copy(entrada,01,08);
V_NOME := Copy(entrada,09,80);
V_INC := Copy(entrada,89,2);
V_FILME := Copy(entrada,91,6);
V_AUX := Copy(entrada,97,2);
V_PORTE_ANEST := Copy(entrada,99,2);
V_CUST_OPER := Copy(entrada,101,8);
V_HONO_MED := Copy(entrada,109,8);

IBQ1.Params[0].AsInteger := STRTOINT(V_CODIGO);
IBQ1.Params[1].AsString := V_NOME;
IBQ1.Params[2].AsInteger := STRTOINT(V_INC);
IBQ1.Params[3].AsString := V_FILME;
IBQ1.Params[4].AsInteger := STRTOINT(V_AUX);
IBQ1.Params[5].AsInteger := STRTOINT(V_PORTE_ANEST);
IBQ1.Params[6].AsInteger := STRTOINT(V_CUST_OPER);
IBQ1.Params[7].AsInteger := STRTOINT(V_HONO_MED);

IBQ1.SQL.Add(´INSERT INTO PROC_MED (PM_CODIGO,PM_NOME,PM_INC,PM_FILME,PM_AUX,PM_PORTE_ANEST,PM_CUST_OPER,PM_HONO_MED) VALUES(:V_CODIGO,:V_NOME,:V_INC,:V_FILME,:V_AUX,:V_PORTE_ANEST,:V_CUST_OPER,:V_HONO_MED) ´);
IBQ1.ExecSQL;
IBQ1.SQL.Clear;
IBQ1.SQL.Add(´commit´);
IBQ1.ExecSQL;

end;
CloseFile(Arq);
end
else
begin
Showmessage(´Cancelado pelo Usuário !!!´);
Abort;
end;
end;


Ruf@

Ruf@

Responder

Posts

18/02/2003

Anonymous

Para Gravar, vc deve usar o ApplyUpdates(-1) do seu DataSet


Responder

18/02/2003

Anonymous

Verifique se o arquivo não contém uma linha em branco no inicio do arquivo, pois com a função EOLN() você lê a linha até seu último caracter, caso a primeira linha esteja vazia, pode ocorrer de seu laço não estar sendo executado nenhuma vez...
Se for esse o caso, vc pode substituir EOLN por EOF, garantindo que todo o arquivo será lido!!!

[]´s
Rodrigo Duarte.


Responder

24/02/2003

Raposao

[quote:95cee7e15d=´ruf@´]Pessoal não entendo o que está errado, estou tentando importar um arquivo .txt e não grava nada. O que pode ser ? Alguém pode me ajudar ?

While not Eoln(arq) do
begin
ReadLn(arq,entrada);
// IbtProcMedData.Insert;
V_CODIGO := Copy(entrada,01,08);
V_NOME := Copy(entrada,09,80);
V_INC := Copy(entrada,89,2);
V_FILME := Copy(entrada,91,6);
V_AUX := Copy(entrada,97,2);
V_PORTE_ANEST := Copy(entrada,99,2);
V_CUST_OPER := Copy(entrada,101,8);
V_HONO_MED := Copy(entrada,109,8);

IBQ1.Params[0].AsInteger := STRTOINT(V_CODIGO);
IBQ1.Params[1].AsString := V_NOME;
IBQ1.Params[2].AsInteger := STRTOINT(V_INC);
IBQ1.Params[3].AsString := V_FILME;
IBQ1.Params[4].AsInteger := STRTOINT(V_AUX);
IBQ1.Params[5].AsInteger := STRTOINT(V_PORTE_ANEST);
IBQ1.Params[6].AsInteger := STRTOINT(V_CUST_OPER);
IBQ1.Params[7].AsInteger := STRTOINT(V_HONO_MED);

IBQ1.SQL.Add(´INSERT INTO PROC_MED (PM_CODIGO,PM_NOME,PM_INC,PM_FILME,PM_AUX,PM_PORTE_ANEST,PM_CUST_OPER,PM_HONO_MED) VALUES(:V_CODIGO,:V_NOME,:V_INC,:V_FILME,:V_AUX,:V_PORTE_ANEST,:V_CUST_OPER,:V_HONO_MED) ´);
IBQ1.ExecSQL;
IBQ1.SQL.Clear;
IBQ1.SQL.Add(´commit´);
IBQ1.ExecSQL;

end;
CloseFile(Arq);
end
else
begin
Showmessage(´Cancelado pelo Usuário !!!´);
Abort;
end;
end;[/quote:95cee7e15d]



caro colega gostaria de saber se vc conseguiu resolver este problema pois estou com o mesmo,e nao consigo,ja tentei varias formas mas nenhuma grava na tabela,gostaria de saber se vc consegui fazer esta funcionar e se pudesse compartilhar comigo,desde ja agradeço pela colaboração.


Responder

24/02/2003

Anonymous

Taí uma dica, tente!!!
Jogue o texto no Excel,
No Excel salve como tipo dBase III (*.dbf)
Abra o arquivo .dbf no Access;
No Access salve como tipo Paradox, ou tente importar
para Paradox.
Espero que vc consiga!
Enio Marconcini
www.apocaliptica.hpg.com.br


Responder

24/02/2003

Anonymous

Pode enviar-me seu e-mail, e descarrego um exemplo operaciol....

ok


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar