quot;Cannot modify a read-only datasetquot; com dbExpress
Olá pessoal,
Estou fazendo uma pequena aplicação com Delphi 7, banco de dados Interbase e usando dbExpress pra fazer as conexões.
Uso uma TSQLQuery, umTDataSetProvider, e um TClientDataSet. O ClientDataSet usa o DataSetProvider como Provider, e este usa a SQLQuery como dataset.
Os métodos post, insert, edit, etc aplico no ClientDataSet.
O problema é que toda vez que tento dar um applyupdates, assim:
ou assim:
ele me dá o mesmo erro: [b:1ebbe764e7]´Q_CLIENTES : Cannot modify a read-only dataset´[/b:1ebbe764e7]
Vejam que o erro se dá na SQLDataset, e não no ClientDataSet.
Alguém sabe por que isso acontece? Desde já, agradeço
Estou fazendo uma pequena aplicação com Delphi 7, banco de dados Interbase e usando dbExpress pra fazer as conexões.
Uso uma TSQLQuery, umTDataSetProvider, e um TClientDataSet. O ClientDataSet usa o DataSetProvider como Provider, e este usa a SQLQuery como dataset.
Os métodos post, insert, edit, etc aplico no ClientDataSet.
O problema é que toda vez que tento dar um applyupdates, assim:
procedure TDM.CDS_CLIENTESAfterPost(DataSet: TDataSet); begin (Dataset as TClientDataSet).ApplyUpdates(0); end;
ou assim:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if DM.CDS_CLIENTES.ChangeCount > 0 then DM.CDS_CLIENTES.ApplyUpdates(0); end;
ele me dá o mesmo erro: [b:1ebbe764e7]´Q_CLIENTES : Cannot modify a read-only dataset´[/b:1ebbe764e7]
Vejam que o erro se dá na SQLDataset, e não no ClientDataSet.
Alguém sabe por que isso acontece? Desde já, agradeço
Moonlight
Curtidas 0
Respostas
Edilcimar
13/07/2003
ou o clientdataset ou o sqldataset não estão compartilhados, veja se não existe um read only, applyupdate
GOSTEI 0
Marceloribeiro
13/07/2003
Leticia,
Bom, vamos por parte, ok?
Eu utilizo DBExpress e tive alguns problemas parecidos, exatamente porque eu estava usando TSQLQuery, então passei a usar TSQLDataSet, ou seja, SQLDataSet + DataSetProvider + ClientDataSet e devo admitir que ficou muito bom, tente fazer isso e se não conseguir me comunique, ok?
Um Abraço!!!
Marcelo Ribeiro
Bom, vamos por parte, ok?
Eu utilizo DBExpress e tive alguns problemas parecidos, exatamente porque eu estava usando TSQLQuery, então passei a usar TSQLDataSet, ou seja, SQLDataSet + DataSetProvider + ClientDataSet e devo admitir que ficou muito bom, tente fazer isso e se não conseguir me comunique, ok?
Um Abraço!!!
Marcelo Ribeiro
GOSTEI 0
Moonlight
13/07/2003
Olá pessoal, MUITO obrigada pela ajuda.
Bom, o problema era que uma propriedade do DataSet Provider (chamada ResolveToDataSet) estava como True. Coloquei como False, e funcionou beleza.
E, seguindo o conselho do amigo Marcelo, mudei de TSQLQuery pra TSQLDataSet. Tá ótimo. Vou continuar minha aplicação dessa forma.
Muito obrigada. :P
Bom, o problema era que uma propriedade do DataSet Provider (chamada ResolveToDataSet) estava como True. Coloquei como False, e funcionou beleza.
E, seguindo o conselho do amigo Marcelo, mudei de TSQLQuery pra TSQLDataSet. Tá ótimo. Vou continuar minha aplicação dessa forma.
Muito obrigada. :P
GOSTEI 0