Fórum quot;Cannot modify a read-only datasetquot; com dbExpress #169164

13/07/2003

0

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:

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

Moonlight

Responder

Posts

13/07/2003

Edilcimar

ou o clientdataset ou o sqldataset não estão compartilhados, veja se não existe um read only, applyupdate


Responder

Gostei + 0

13/07/2003

Marceloribeiro

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


Responder

Gostei + 0

13/07/2003

Moonlight

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


Responder

Gostei + 0

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

Aceitar