Cannot Modify a Read-Only dataset
19/07/2008
0
Pessoal,
Eu estou fazendo um controle de estoque para um trabalho de escola.
Quando eu tento editar a quantidade do produto (se é uma entrada ou saída)
dá este erro: Cannot Modify a Read-Only dataset.
No Código, eu preencho a propriedade ModifySQL do IBdataset, por isso não entendo o porque do erro:
Este é o código do Botão em que eu abro os datasets:
Estou usando os componentes IBdatabase, IBtransaction, IBdataset e um Dataset da aba DataAccess.[/code]
Eu estou fazendo um controle de estoque para um trabalho de escola.
Quando eu tento editar a quantidade do produto (se é uma entrada ou saída)
dá este erro: Cannot Modify a Read-Only dataset.
No Código, eu preencho a propriedade ModifySQL do IBdataset, por isso não entendo o porque do erro:
procedure TFrmCadastro.BtnSalvarOcorrenciaClick(Sender: TObject); begin with IBdtscadmat do begin ModifySQL.Clear; ModifySQL.add(´UPDATE MATERIAL SET QUANT = ´); ModifySQL.add(dbedtquantocorrencia.text + ´ +( SELECT QUANT FROM MATERIAL ´); ModifySQL.add(´WHERE CDMATERIAL = ´ + inttostr(dbcombomaterial.KeyValue) + ´ )´); ModifySQL.add(´ WHERE CDMATERIAL = ´+ inttostr(dbcombomaterial.KeyValue)); end; try IbdtsOcorrencia.Post; IbdtsOcorMat.Post; IbdtsCadMat.Edit; //Esta Linha está dando o erro. IbdtsCadMat.Post; IbdtsOcorrencia.Active := False; IbdtsLogin.Active := False; IbdtsOcorMat.Active := False; ibdtscadmedidas.Active := false; IbdtsCadMat.Active := False; DMDatabase.Transaction.CommitRetaining; MessageDlg(´Dados gravados com sucesso´, mtInformation, [mbOk], 0); mkedtdata.Text := ´´; umodulo.HabilitaES(False); except Dmdatabase.Transaction.Rollback; MessageDlg(´Preencha Todos os Campos´, mtInformation, [mbOk], 0); Umodulo.HabilitaES(False); end; end;
Este é o código do Botão em que eu abro os datasets:
procedure TFrmCadastro.BtnNovoOcorrenciaClick(Sender: TObject); begin Umodulo.HabilitaES(True); mkedtdata.Text := datetostr(now); IBdtslogin.SelectSQL.Clear; IBdtslogin.SelectSQL.Add(´SELECT * FROM LOGIN´); IBdtslogin.SelectSQL.Add(´WHERE IDLOGIN = :id´); Ibdtslogin.ParamByName(´id´).AsInteger := 2; DBComboBoxUser.setfocus; if (IbdtsLogin.Active = false or IbdtsOcorrencia.Active = False or IbdtsOcorMat.Active = false or IbdtsCadMat.Active = false) then begin IbdtsLogin.Active := true; IbdtsOcorrencia.Active := true; IbdtsOcorMat.Active := true; IbdtsCadMat.Active := True; end; IbdtsCadMat.open; IbdtsLogin.open; IbdtsOcorrencia.open; IbdtsOcorMat.Open; IbdtsOcorMat.Append; IbdtsOcorrencia.Append; end;
Estou usando os componentes IBdatabase, IBtransaction, IBdataset e um Dataset da aba DataAccess.[/code]
Gabriel301
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)