Fórum Cannot modify a read-only dataset #293160
25/08/2005
0
De acordo com a opção escolhida pelo usuário eu modifico a ligação do datasource, ora recebendo o resultado da consulta de um TQuery ora de outro e colocando-o num DBGrid.
Quando o datasource está ligado ao Query criado em tempo de execussão e tento edita-lo, recebo essa mensagem:
raised exception class EDatabaseError with message ´Cannot modify a read-only dataset´.
Quando é com o objeto TQuery do Delphi não tenho problemas, é só com o que é criado na hora.
Além do óbvio que a própria mensagem já diz o que posso fazer para poder editar o resultado o que está no grid?
Peununes
Curtir tópico
+ 0Posts
25/08/2005
Beppe
Gostei + 0
26/08/2005
Peununes
var
qRS : TQuery;
begin
qRS := TQuery.Create(nil);
qRS.DatabaseName := ´banco´;
with qRS do
begin
qRS.Close;
qRS.SQL.Add(´SELECT bla bla bla´);
qRS.SQL.Add(´ From bla bla bla´);
qRS.SQL.Add(´ WHERE bla bla bla);
qRS.Open;
end;
if qRS.isempety then
begin
ds.dataset := qRP //datasourse (ds) recebe do objeto TQuery
dbgrid.datasource := ds;
end
else
begin
ds.dataset := qRS //datasourse recebe do TQuery criado acima
dbgrid.datasource := ds;
end;
Quando ligo o datasource ao objeto não dá problema mas na ligação com o segundo dá o erro citado.
Gostei + 0
26/08/2005
Evaldobarbosa
Espero que resolva o seu problema, pois só conheço esse erro nesse tipo de situação.
Gostei + 0
26/08/2005
Adriano Santos
Gostei + 0
26/08/2005
Peununes
ShowMessage(ds.DataSet.Name); e... surpresa!!! A mensagem vem vazia!!!
Quando altero da segunda vez para o ds receber o Query montado em tempo real a propriedade dataset não está recebendo a query!!
O engraçado é que em tempo real, o ds recebe a consulta feita no objeto TQuery normalmente!!!
Alguém sabe o que está havendo e como resolvo isso?
Gostei + 0
26/08/2005
Peununes
Gostei + 0
26/08/2005
Beppe
Vc que não está interpretando corretamente o resultado. Na verdade, nada anormal occoreu. Componentes criados em runtime naum tem nome(logo Name = ´´). Se o DataSet naum estivesse setado, uma exceção iria ocorrer, como vc acessou uma propriedade dele.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)