Gravando dados em duplicidade ou as vezes até mais de duas X
Boa tarde pessoal.
[color=red:d8dbe21004]Primeiro estou usando BD Firebird 2.0[/color:d8dbe21004]
Estou com problemas com o codigo feito em SQL, duplica o lançamento ou ateh mais vezes dentro do Banco de Dados
Fiz um teste com um IBTable e funciona certo, mais com o IBQuery nao esta funcionando
[color=blue:d8dbe21004]Olhe o codigo que grava certo usando o IBTable[/color:d8dbe21004]
[color=red:d8dbe21004]Olhe o codigo que duplica usando o IBQuery[/color:d8dbe21004]
Alguem pode me explicar qual o erro nesta SQL? Nao consegui axar o erro.
[color=red:d8dbe21004]Primeiro estou usando BD Firebird 2.0[/color:d8dbe21004]
Estou com problemas com o codigo feito em SQL, duplica o lançamento ou ateh mais vezes dentro do Banco de Dados
Fiz um teste com um IBTable e funciona certo, mais com o IBQuery nao esta funcionando
[color=blue:d8dbe21004]Olhe o codigo que grava certo usando o IBTable[/color:d8dbe21004]
if application.messagebox(´Deseja gravar este Lançamento?´, ´Gravar Dados´, MB_ICONQUESTION + MB_YESNO) = IDYES then BEGIN try dm.ibtable2.Append; dm.ibtable2.fieldbyname(´matricula´).value:=edit1.text; dm.ibtable2.fieldbyname(´associado´).value:=label3.caption; dm.ibtable2.fieldbyname(´mespgto´).value:=strtodate(maskedit1.text); dm.ibtable2.fieldbyname(´mesrefini´).value:=strtodate(maskedit2.text); dm.ibtable2.fieldbyname(´mesreffim´).value:=strtodate(maskedit3.text); dm.ibtable2.POST; ok:=true; Edit1.Text:=´´; except application.MessageBox(´Erro na Gravação! Tente Novamente!´,´Aviso´,mb_ok+mb_iconexclamation); ok:=false; end; if ok then begin dm.ibtcorr.Commit; sbar.SimpleText := ´Gravado...´; end else begin dm.ibtcorr.Rollback; sbar.SimpleText := ´Abortado...´; end;
[color=red:d8dbe21004]Olhe o codigo que duplica usando o IBQuery[/color:d8dbe21004]
begin IF (edit1.text=´´) or (maskedit1.text=´´) or (maskedit2.text=´´) or (maskedit3.text=´´) then begin beep; showmessage(´Preencha os todos os campos´); end else begin with dm.ibqcorr do begin try close; sql.clear; SQL.Add(´Insert into CORRENTE(matricula, associado, MESPGTO, MESREFINI, MESREFFIM)´); sql.add(´values (:cmatricula, :cAssociado, :cmespgto, :cmesrefini, :cmesreffim)´); parambyname(´cMatricula´).asString:=Edit1.Text; parambyname(´cAssociado´).asString:=Label3.Caption; parambyname(´cMespgto´).asDate:=StrToDate(maskedit1.text); parambyname(´cMesrefIni´).AsDate:=StrtoDate(Maskedit2.text); parambyname(´cMesrefFim´).AsDate:=StrtoDate(Maskedit3.text); ExecSQL; except application.MessageBox(´ ´Erro na Gravação! Tente novamente!´,´Aviso´,mb_ok+mb_iconexclamation); ok:=false; end; if ok then begin dm.ibtCORR.Commit; DM.ibQCORR.Open; sbar.SimpleText := ´Gravado...´; end else begin dm.ibtCORR.Rollback; DM.ibTCORR.Rollback; sbar.SimpleText := ´Abortado...´; end; dm.ibqcorr.close; dm.ibqcorr.open; END;
Alguem pode me explicar qual o erro nesta SQL? Nao consegui axar o erro.
Adriano_servitec
Curtidas 0
Respostas
Adriano_servitec
21/08/2006
Probelma resolvido, faltou dar um select na tabela
begin IF (edit1.text=´´) or (maskedit1.text=´´) or (maskedit2.text=´´) or (maskedit3.text=´´) then begin beep; showmessage(´Preencha os todos os campos´); end else begin with dm.ibqcorr do begin try close; sql.clear; SQL.Add(´Insert into CORRENTE(matricula, associado, MESPGTO, MESREFINI, MESREFFIM)´); sql.add(´values (:cmatricula, :cAssociado, :cmespgto, :cmesrefini, :cmesreffim)´); parambyname(´cMatricula´).asString:=Edit1.Text; parambyname(´cAssociado´).asString:=Label3.Caption; parambyname(´cMespgto´).asDate:=StrToDate(maskedit1.text); parambyname(´cMesrefIni´).AsDate:=StrtoDate(Maskedit2.text); parambyname(´cMesrefFim´).AsDate:=StrtoDate(Maskedit3.text); ExecSQL; Ok:=True; except application.MessageBox(´ ´Erro na Gravação! Tente novamente!´,´Aviso´,mb_ok+mb_iconexclamation); ok:=false; end; end; if ok then begin dm.ibtCORR.Commit; //Select para abrir a query DM.IbQCORR.SQL.Text := ´SELECT * FROM TABELA´; //faltou essa linha DM.ibQCORR.Open; sbar.SimpleText := ´Gravado...´; end else begin dm.ibtCORR.Rollback; sbar.SimpleText := ´Abortado...´; end; dm.ibqcorr.close; dm.ibqcorr.open; END;
GOSTEI 0