Faça o posto para cada registro criado, e ao final use ApplyUdpates(0). Com 
ApplyUpdates(-1), se houverem erros, os mesmos não serão notificados à 
aplicação.
 
Sds.
 


To: delphi-br@yahoogrupos.com.br
From: ral...@gmail.com
Date: Fri, 12 Mar 2010 07:20:01 -0300
Subject: [delphi-br] Duplicar registro no firebird

  


Bom dia.

Venho mais uma vez, pedir a ajuda dos nobres colegas.

Tenho um sistema em Delphi 7 e Firebird 2.1 para digitalização de documentos
com duas tabelas devidamente ligadas (master detail).

Existe um campo chamado QtdPag (Edit) onde o usuário vai informar a
quantidade de documentos a digitalizar.

Com base nesta quantidade digitada, queria que fosse gravado em banco a
quantidade de registros informado no campo QtdPag.

Na verdade, os registros seriam duplicados e salvos em banco de acordo com a
quantidade informada.

Estou tentando desta maneira abaixo:

procedure TfrmDigitalizaTCM.AdvGlassButton1Click(Sender: TObject);

begin

btnSalvarTCM.Click;

DM.cds_TCM_A.Open;

Try

For Docs := 1 to StrToInt(QtdPag.Text) do

begin

DM.cds_TCM_A.Insert;

DM.cds_TCM_ACODIGO_ENTIDADE.Text:=CodMunicipio.Text;

DM.cds_TCM_ACOD_UNID_ADMINISTRATIVA.Text:=DBText1.Caption;

DM.cds_TCM_ASIGLA_DOCUMENTO.Text:=TipoDoc.Text;

DM.cds_TCM_AEXERCICIO.Text:=DBEdit1.Text;

DM.cds_TCM_AUNIDADE_GESTORA.Text:=DBText2.Caption;

DM.cds_TCM_A.Post;

DM.cds_TCM_A.ApplyUpdates(-1);

end;

finally

ShowMessage('Inicie a digitalização de "'+QtdPag.Text+'" página(s) do
documento:'+#13+'"'+RxDBLookupCombo1.Text+'"');

end;

end;

Porém, se informar 5 no campo QtdPag é mostrado no dbgrid os 5 registros,
mas no banco é gravado somente 1 registro. 

Como poderia resolver este problema?

Abraços.

Ralp Alves Bezerra


                                          
_________________________________________________________________
Não deixe rastros ao navegar na Internet. Instale Grátis o Internet Explorer 8 
agora.
http://go.microsoft.com/?linkid=9707132

[As partes desta mensagem que não continham texto foram removidas]

Responder a