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;
************************************************************
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
Curtir tópico
+ 0
Responder
Posts
24/06/2004
Aldus
Alguém poderia me ajudar?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)