Fórum Lentidao na importação de dados! #236656
08/06/2004
0
Olá
Estou importando dados de um arquivo TXT de 1,36MB, tem muito registro, e consegui importar todos para o meu banco de dados em interbase, mas ele demora ateh 1h para importar tudo, fico imaginando se o cliente vai gostar disso na hora de atualizar essa lista.
O código do meu sistema que faz a importação eh o seguinte:
While not Eoln(TXT) do
Begin
Try
ReadLn(TXT,Entrada);
dtm.dts_produtos.Insert;
dtm.dts_produtosCODIGO.AsInteger := strtoint(Copy(Entrada,03,06));
dtm.dts_produtosCOD_BARRAS.AsString := Copy(Entrada,09,13);
dtm.dts_produtosDESCRICAO.AsString := Copy(Entrada,22,32);
dtm.dts_produtosLABORATORIO.AsString := Copy(Entrada,54,15);
dtm.dts_produtosPRECO_VENDA.AsCurrency := strtocurr(Copy(Entrada,69,11));
dtm.dts_produtosPRECO_FABRICA.AsCurrency := strtocurr(Copy(Entrada,80,11));
valor := CurrToStr(dtm.dts_produtosPRECO_VENDA.AsCurrency);
tamanho := Length(valor);
if tamanho = 2
Then Insert(´0,´,valor,1); {Bota as virgulas se nao os valores vao pros mil}
if tamanho = 3
Then Insert(´,´,valor,2);
if tamanho = 4
Then Insert(´,´,valor,3);
if tamanho = 5
Then Insert(´,´,valor,4);
dtm.dts_produtosPRECO_VENDA.AsCurrency := strtocurr(valor);
valor := currtostr(dtm.dts_produtosPRECO_FABRICA.AsCurrency);
tamanho := Length(valor);
if tamanho = 2
Then Insert(´0,´,valor,1);
if tamanho = 3
Then Insert(´,´,valor,2);
if tamanho = 4
Then Insert(´,´,valor,3);
if tamanho = 5
Then Insert(´,´,valor,4);
dtm.dts_produtosPRECO_FABRICA.AsCurrency := strtocurr(valor);
dtm.dts_produtosPERC_ICMS.AsInteger := 17;
dtm.dts_produtos.Post;
dtm.dts_produtos.ApplyUpdates;
Tem como melhorar isso para almentar a performance?
Obrigado
Estou importando dados de um arquivo TXT de 1,36MB, tem muito registro, e consegui importar todos para o meu banco de dados em interbase, mas ele demora ateh 1h para importar tudo, fico imaginando se o cliente vai gostar disso na hora de atualizar essa lista.
O código do meu sistema que faz a importação eh o seguinte:
While not Eoln(TXT) do
Begin
Try
ReadLn(TXT,Entrada);
dtm.dts_produtos.Insert;
dtm.dts_produtosCODIGO.AsInteger := strtoint(Copy(Entrada,03,06));
dtm.dts_produtosCOD_BARRAS.AsString := Copy(Entrada,09,13);
dtm.dts_produtosDESCRICAO.AsString := Copy(Entrada,22,32);
dtm.dts_produtosLABORATORIO.AsString := Copy(Entrada,54,15);
dtm.dts_produtosPRECO_VENDA.AsCurrency := strtocurr(Copy(Entrada,69,11));
dtm.dts_produtosPRECO_FABRICA.AsCurrency := strtocurr(Copy(Entrada,80,11));
valor := CurrToStr(dtm.dts_produtosPRECO_VENDA.AsCurrency);
tamanho := Length(valor);
if tamanho = 2
Then Insert(´0,´,valor,1); {Bota as virgulas se nao os valores vao pros mil}
if tamanho = 3
Then Insert(´,´,valor,2);
if tamanho = 4
Then Insert(´,´,valor,3);
if tamanho = 5
Then Insert(´,´,valor,4);
dtm.dts_produtosPRECO_VENDA.AsCurrency := strtocurr(valor);
valor := currtostr(dtm.dts_produtosPRECO_FABRICA.AsCurrency);
tamanho := Length(valor);
if tamanho = 2
Then Insert(´0,´,valor,1);
if tamanho = 3
Then Insert(´,´,valor,2);
if tamanho = 4
Then Insert(´,´,valor,3);
if tamanho = 5
Then Insert(´,´,valor,4);
dtm.dts_produtosPRECO_FABRICA.AsCurrency := strtocurr(valor);
dtm.dts_produtosPERC_ICMS.AsInteger := 17;
dtm.dts_produtos.Post;
dtm.dts_produtos.ApplyUpdates;
Tem como melhorar isso para almentar a performance?
Obrigado
Raphal
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)