Ciao ragazzi, complice la stanchezza e il cervello che va in loop non ricordo come ovviare ad una cosa banalissima.
Ho un TbufDataSet che visualizzo a video con una dbgrid
se voglio andare a modificare uno dei contenuti del campo uso questa sintassi:
Self.Datasource1.DataSet.Edit;
Self.Datasource1.DataSet.FieldByName('Soldi').AsFloat:=Soldi;
Self.Datasource1.DataSet.Post;
E mi dice:
Operation not allowed, dataset "%s" is not in an edit or insert state.
Aiuto grazie :)
Questo perchè il TBufDataset risiede su una form diversa da dove faccio l'operazione.
se la form non è la stessa da dove fai l'operazione le cose cambiano...
self in pratica punta alla form dove non c'è il dataset immagino
prova soluzione (1)
procedure TForm2.ImpostaValore;
begin
Form1.Dataset1.Edit;
Form1.Dataset1.FieldByName('Soldi').AsFloat:=Soldi;
Form1.Dataset1.Post;
end;
oppure con soluzione (2)
in TForm1...
TForm1 = class(TForm)
...
public
property Soldi: extended read FSoldi write SetSoldi;
end
procedure TForm1.SetSoldi(value: extended);
begin
Dataset1.Edit;
Dataset1.FieldByName('Soldi').AsFloat:=value;
Dataset1.Post;
end;
e poi, da Form2:
Form1.Soldi := 4.54;