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