Fórum sera q alguem pode me ajudar ???? - urgente #160005
13/05/2003
0
implementei este codigo para transferir um TXT de 19000 itens p/ uma tabela SQL, na minha maquina o codigo foi eficiente, mas na maquina que utilizo no trabalho nao, será que pode ser melhorado este código? ou é porque em minha maquina utilizo SLQ Server Desktop e no trabalho uso cliente/servidor!! e mais, o usuario clica no botao para atualizar a tabela, preciso que qdo carregar o programa ele verifica se o arquivo TXT foi alterado, se sim atualiza a tabela sem precisar da acao do usuario... obrigado
procedure TfrmPedidos.CopiaTXT(Sender: TObject);
var
TXT : TextFile ;
Entrada : String ;
begin
AssignFile(TXT, ´C:\USIProjetos\Tabelas\Prods.TXT´);
Reset(TXT) ;
while not Eoln(TXT) do
begin
Readln(TXT,Entrada) ;
DMGeral.ADOtblProduto.Insert ;
DMGeral.ADOtblProdutoCod_prod.Value := Copy(Entrada,01,09) ;
DMGeral.ADOtblProdutoNome_prod.Value := Copy(Entrada,10,40) ;
DMGeral.ADOtblProduto.Post ;
end;
CloseFile(TXT) ;
btnCopia.Enabled := False ;
end;
procedure TfrmPedidos.CopiaTXT(Sender: TObject);
var
TXT : TextFile ;
Entrada : String ;
begin
AssignFile(TXT, ´C:\USIProjetos\Tabelas\Prods.TXT´);
Reset(TXT) ;
while not Eoln(TXT) do
begin
Readln(TXT,Entrada) ;
DMGeral.ADOtblProduto.Insert ;
DMGeral.ADOtblProdutoCod_prod.Value := Copy(Entrada,01,09) ;
DMGeral.ADOtblProdutoNome_prod.Value := Copy(Entrada,10,40) ;
DMGeral.ADOtblProduto.Post ;
end;
CloseFile(TXT) ;
btnCopia.Enabled := False ;
end;
Martelato
Curtir tópico
+ 0
Responder
Posts
13/05/2003
Renaldo
Olá, espero que funcione.
DMGeral.ADOtblProdutoCod_prod.Value := Copy(Entrada,01,09) ;
Cod_prod é um campo da tabela?
se for use assim:
DMGeral.ADOtblProduto(´Cod_prod´).Value := Copy(Entrada,01,09) ;
Um abraço,
Renaldo
DMGeral.ADOtblProdutoCod_prod.Value := Copy(Entrada,01,09) ;
Cod_prod é um campo da tabela?
se for use assim:
DMGeral.ADOtblProduto(´Cod_prod´).Value := Copy(Entrada,01,09) ;
Um abraço,
Renaldo
Responder
Gostei + 0
13/05/2003
Cfn2003
J ative experiencias parecidas, e optei por utilizar codigo sql, o executavel fica mais rapido.
tente o codigo abaixo, acho que vai melhorar
procedure TfrmPedidos.CopiaTXT(Sender: TObject);
var
TXT : TextFile ;
Entrada : String ;
begin
AssignFile(TXT, ´C:\USIProjetos\Tabelas\Prods.TXT´);
Reset(TXT) ;
while not Eoln(TXT) do
begin
Readln(TXT,Entrada) ;
with tadoquery.create(nil) do
try
connection := suaconexao;
sql.add(´insert suatabela(campo1,campo2....)´;
sql.add(´values(:campo1, :campo2, ...)´
parameters.itens[0].datatype := ftstring;
parameters.itens[1].datatype := ftinteger;
parameters[0].value :=Copy(Entrada,01,09) ;
parameters[1].value := Copy(Entrada,10,40) ;
execsql;
finally
free;
end;
end;
CloseFile(TXT) ;
btnCopia.Enabled := False ;
end;
tente o codigo abaixo, acho que vai melhorar
procedure TfrmPedidos.CopiaTXT(Sender: TObject);
var
TXT : TextFile ;
Entrada : String ;
begin
AssignFile(TXT, ´C:\USIProjetos\Tabelas\Prods.TXT´);
Reset(TXT) ;
while not Eoln(TXT) do
begin
Readln(TXT,Entrada) ;
with tadoquery.create(nil) do
try
connection := suaconexao;
sql.add(´insert suatabela(campo1,campo2....)´;
sql.add(´values(:campo1, :campo2, ...)´
parameters.itens[0].datatype := ftstring;
parameters.itens[1].datatype := ftinteger;
parameters[0].value :=Copy(Entrada,01,09) ;
parameters[1].value := Copy(Entrada,10,40) ;
execsql;
finally
free;
end;
end;
CloseFile(TXT) ;
btnCopia.Enabled := False ;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)