Page 1 of 1

State before post

Posted: Thu 03 Mar 2011 12:49
by norwegen60
Hello,

is the a property, where I can get the state I have hade before post the dataset? In my example I should make a refresh, if the state was insert. Of course I can make my own variable, but if there is something in UniDac it woukld be fine.

best regards
Gerd

Posted: Thu 03 Mar 2011 13:17
by AlexP
Hello,

To determine DataSet state, you can use the State property like:

if UniQuery.State in [dsInsert, dsEdit,..] then

Posted: Thu 03 Mar 2011 15:07
by norwegen60
Yes, I know. But I want to know the status I have had before Post like

Code: Select all

UniQuery1.post
 
procedure TForm1.UniQuery1AfterPost(DataSet: TDataSet);
begin
  if UniQuery1.BeforePost = dsInsert then
    UniQuery2.refresh;
end;
Refresh should only be done, if there was an Insert before.

I can do it like

Code: Select all

UniQuery1.post
 
procedure TForm1.UniQuery1BeforePost(DataSet: TDataSet);
begin
  stUQ1 := UniQuery1.state;
end;

procedure TForm1.UniQuery1AfterPost(DataSet: TDataSet);
begin
  if stUQ1 = dsInsert then
    UniQuery2.refresh;
  stUQ1 := UniQuery1.state;
end;
But maybe there is a Property in UniDac I didn“t found until yet

Posted: Fri 04 Mar 2011 07:48
by AlexP
Hello,

To refresh DataSet only after insert, you can use the RefreshOptions property like

UniQuery.RefreshOptions:= [roAfterInsert];

or use the onAfterUpdateExecute event like

procedure TForm1.UniQueryAfterUpdateExecute(Sender: TDataSet;
StatementTypes: TStatementTypes; Params: TDAParams);
begin
if stInsert in StatementTypes then
UniQuery.Refresh;