PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro ao abrir arquivo na segunda vez #239383

24/06/2004

0

Olá amigos, estou desenvolvendo meu primeiro sistema e estou encontrando o seguinte erro (uso firebird)

No DataModule:
Conection - SQLDataSet - DataSetProvider - ClientDataSet

Chamo peo menu meu cadastro de produtos como modal.

O que acontece é que quando acesso pela primeira vez, funciona corretamente, incluo sem problemas, daí saio do form e quando tento acessá-lo novamente dá um erro de chave primária.

Se podessem me ajudar, ficaria grato.

Mario

Segue o código do cadastro de bairros (abro em forshow e fecho em forclosequery)

***********************************************************

procedure TfCadBai.BitBtn1Click(Sender: TObject);
var
vvcodbai: integer;
trs: Ttransactiondesc;
begin
inherited;
if cCodBai.Text = ´ ´ then
ShowMessage(´Código do bairro é obrigatório!´);
ccodBai.SetFocus ;
trs.TransactionID := 1;
trs.IsolationLevel := xilReadCommitted;
dm.Conexao.StartTransaction(trs);
try
DM.SQLDataSet_Bairros.Close ;
DM.SQLDataSet_Bairros.CommandText := ´INSERT INTO bairros ´+
´(codbai,nombai) ´+
´values ´+
´(:vcodbai,:vnombai)´;
vvcodbai := StrToInt(cCodBai.Text);
DM.SQLDataSet_Bairros.ParamByName(´vcodbai´).AsInteger := vvcodbai;
DM.SQLDataSet_Bairros.ParamByName(´vnombai´).AsString := cNomBai.Text ;
DM.SQLDataSet_Bairros.ExecSQL;
DM.conexao.commit(trs);
except
DM.conexao.rollback(trs);
end;
cCodBai.Text := ´´;
cNomBai.Text := ´´;
cCodBai.SetFocus ;
end;

procedure TfCadBai.FormShow(Sender: TObject);
begin
inherited;
DM.SQLDataSet_Bairros.Active := True;
DM.ClientDataSet_Bairros.Active := True;
cCodBai.SetFocus ;
end;

procedure TfCadBai.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
inherited;
DM.ClientDataSet_Bairros.Active := False;
DM.SQLDataSet_Bairros.Active := False;
end;

************************************************************


Aldus

Aldus

Responder

Posts

24/06/2004

Aldus

Alguém poderia me ajudar?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar