Re: [firebase-br] repetição

Sandro oleber_itajai em yahoo.com.br
Qui Fev 8 11:58:13 -03 2007


Eu mudaria o seguinte:

procedure gravaselos;
begin
 DM1.QRYselos1.Close;
tiraria esse linha de baixo:
// DM1.QRYselos1.active:=true;
 DM1.QRYselos1.selectSQL.Clear;
 DM1.QRYselos1.selectSQL.Add('Insert Into selos1
(id,DATA,NUMSELO,CONTROLE,TIPO)');
 DM1.QRYselos1.selectSQL.Add('Values(:ID,:DATA,:NUMSELO,:CONTROLE,:TIPO)');
 DM1.QRYselos1.ParamByName('ID').Asinteger:=strtoint(edit109.Text);
 DM1.qryselos1.ParamByName('DATA').Asdatetime:=strtodate((maskedit1.text));
 DM1.QRYselos1.ParamByName('NUMSELO').AsSTRING:=edit6.Text;
 DM1.QRYselos1.ParamByName('CONTROLE').AsSTRING:=edit109.Text;
 DM1.QRYselos1.ParamByName('TIPO').AsSTRING:=COMBOBOX5.Text;
em vez de open   coloca execsql
 DM1.QRYselos1.OPEN;
e se vc usa commitretaining ele manten a trasacao ativa..entaum naum precisa
a linha debaixo..
// DM1.trSELOS1.active:=true;
 DM1.TRSELOS1.CommitRetaining;
end;

Tenta essas mudanças.


Sandro Rebelo Setor informática - 2º Ofício Notas  Itajai-SC


----- Original Message ----- 
From: "cartorio" <cart5sjm em uol.com.br>
To: <lista em firebase.com.br>
Sent: Thursday, February 08, 2007 11:35 AM
Subject: [firebase-br] repetição


bom dia a todos, estou com o seguinte problema. tenho um banco de dados com
delphi 5 e firebird usando ibdataset. o que ocorre é que tenho um while que
faz a procedure abaixo rodar algumas vezes de acordo com o valor informado.
só que o primeiro registro sempre aparece duplicado, o que está acontecendo
de errado?
procedure gravaselos;
begin
 DM1.QRYselos1.Close;
 DM1.QRYselos1.active:=true;
 DM1.QRYselos1.selectSQL.Clear;
 DM1.QRYselos1.selectSQL.Add('Insert Into selos1
(id,DATA,NUMSELO,CONTROLE,TIPO)');
 DM1.QRYselos1.selectSQL.Add('Values(:ID,:DATA,:NUMSELO,:CONTROLE,:TIPO)');
 DM1.QRYselos1.ParamByName('ID').Asinteger:=strtoint(edit109.Text);
 DM1.qryselos1.ParamByName('DATA').Asdatetime:=strtodate((maskedit1.text));
 DM1.QRYselos1.ParamByName('NUMSELO').AsSTRING:=edit6.Text;
 DM1.QRYselos1.ParamByName('CONTROLE').AsSTRING:=edit109.Text;
 DM1.QRYselos1.ParamByName('TIPO').AsSTRING:=COMBOBOX5.Text;
 DM1.QRYselos1.OPEN;
 DM1.trSELOS1.active:=true;
 DM1.TRSELOS1.CommitRetaining;
end;
estou chamando essa procedure através da rotina abaixo
var conta:integer;
begin
 conta:=1;
 EDIT2.TEXT:='';
 testadados;
 IF EDIT2.TEXT='' THEN
 BEGIN
   gravamov;
   while conta <= strtoint(edit17.text) do
   BEGIN //begin3
     showmessage(inttostr(conta));
     edit6.text:= edit14.text+edit3.text;
     edit3.text:= inttostr(strtoint(edit3.text)+1);
     gravaselos;  //procedu que grava o movimento
     conta:=conta+1;
   end;
grata,

Fernanda Ramos-Setor informática - 5º Ofício S.J.Meriti
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


		
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/





Mais detalhes sobre a lista de discussão lista