Por favor URGENTE. Importação de um arquivo .TXT
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;
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@
Curtidas 0
Respostas
Anonymous
14/02/2003
Para Gravar, vc deve usar o ApplyUpdates(-1) do seu DataSet
GOSTEI 0
Anonymous
14/02/2003
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.
Se for esse o caso, vc pode substituir EOLN por EOF, garantindo que todo o arquivo será lido!!!
[]´s
Rodrigo Duarte.
GOSTEI 0
Raposao
14/02/2003
[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.
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.
GOSTEI 0
Anonymous
14/02/2003
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
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
GOSTEI 0
Anonymous
14/02/2003
Pode enviar-me seu e-mail, e descarrego um exemplo operaciol....
ok
ok
GOSTEI 0