[firebase-br] Leitura de arquivo texto
Evandro Siqueira
vansiqq em gmail.com
Sex Fev 15 08:20:42 -03 2008
Esta é uma ótima maneira de parar o servidor...
Tente algo assim
var contados : integer
begin
contados := 0;
while .... do
begin
comandos do banco....;
Inc(contados);
if contados >= 300 then
begin
transacao.commit;
contados := 0;
end;
next;
end;
Garanto que o servidor vai lhe agradecer.
--
Evandro Siqueira
Programador
Aracaju/SE
2008/2/14, Auriston Lopes <auriston.firebird em yahoo.com.br>:
>
> Quando efetuo uma leitura de um arquivo texto para gravar o banco de dados
> esta dando a mensagem OUT OF MEMORY, eu uso a rotina abaixo:
> AssignFile(Nomearquivo, OpenDialog1.FileName);
> Screen.Cursor := crSQLWait;
> ProgressBar1.Min := 0;
> ProgressBar1.Max := Tilinha;
> Reset(Nomearquivo);
> dm.qrytemp.DisableControls;
> while not Eoln(Nomearquivo) do
> begin
> Form1.Caption := Copy(Entrada,1,126);
> inc(ilinha);
> Readln(Nomearquivo,Entrada);
> if Copy(Entrada,1,2) <> '90' then
> Begin
> dm.qrytemp.Insert;
> dm.qrytemp.FieldByname('MAQUINA').Value := 0;
> dm.qrytemp.FieldByName('linha').AsString :=
> Copy(Entrada,1,126);
> if Copy(Entrada,1,2) = '50' then
> Begin
> dm.qrytemp.FieldByname('CNPJ').Asstring :=
> Copy(Entrada,3,14);
> dm.qrytemp.FieldByname('NOTA').Asstring :=
> Copy(Entrada,46,6);
> End;
> if Copy(Entrada,1,2) = '53' then
> Begin
> dm.qrytemp.FieldByname('CNPJ').Asstring :=
> Copy(Entrada,3,14);
> dm.qrytemp.FieldByname('NOTA').Asstring :=
> Copy(Entrada,46,6);
> End;
> if Copy(Entrada,1,2) = '54' then
> Begin
> dm.qrytemp.FieldByname('CNPJ').Asstring :=
> Copy(Entrada,3,14);
> dm.qrytemp.FieldByname('NOTA').Asstring :=
> Copy(Entrada,22,6);
> dm.qrytemp.FieldByname('produto').Asstring :=
> Copy(Entrada,38,14);
> dm.qrytemp.FieldByName('ITEM').AsString :=
> Copy(Entrada,35,3);
> End;
> if Copy(Entrada,1,2) = '75' then
> dm.qrytemp.FieldByName('Produto').AsString :=
> Copy(Entrada,19,14);
> dm.qrytemp.Post;
> End;
> // ProgressBar1.Position := iLinha;
> End;
> dm.qrytemp.EnableControls;
> Preciso de um ajuda para otimizar o codigo acima para que ele fique mais
> leve.
> Uso D7 + IBX + FIREBIRD 1.5
> sds
>
> Auriston
>
>
> ---------------------------------
> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista