UniQuery2->ApplyUpdates() have a Error

Discussion of open issues, suggestions and bugs regarding IBDAC (InterBase Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
xjhwc10
Posts: 4
Joined: Wed 10 Nov 2010 03:21

UniQuery2->ApplyUpdates() have a Error

Post by xjhwc10 » Fri 12 Nov 2010 15:04

UniConnection1 connection firebird2.1

UniTransaction1 defaultconnection is UniConnection1
UniTransaction1 isolationlevel is ilReadCommitted
UniTransaction1 readonly is true

UniTransaction2 defaultconnection is UniConnection1
UniTransaction2 isolationlevel is ilReadCommitted
UniTransaction2 readonly is false

UniQuery1 connection is UniConnection1
UniQuery1 cacheupdates is true
UniQuery1 transaction is UniTransaction1
UniQuery1 update transaction is UniTransaction2

UniQuery2 connection is UniConnection1
UniQuery2 cacheupdates is true
UniQuery2 transaction is UniTransaction1
UniQuery2 update transaction is UniTransaction2

my program:
DM->UniTransaction2->StartTransaction();
try
{
、、、、
UniQuery1->ApplyUpdates();
UniQuery2->ApplyUpdates();

UniTransaction2->Commit();
}
catch(EUniError &e)
{
UniQuery1->CancelUpdates();
UniQuery2->CancelUpdates();
UniTransaction2->Rollback();
return;
}

UniQuery1 append a record,and UniQuery2 append a record,while UniQuery2->ApplyUpdates() ,Exception occurred,but UniQuery is save a record,why?

AndreyZ

Post by AndreyZ » Tue 16 Nov 2010 15:07

Hello,

You can use the TUniConnection.ApplyUpdates method that applies changes from the specified datasets in the following way:

Code: Select all

  TCustomDADataSet* qa[2] = {UniQuery1, UniQuery2};
  UniConnection1->ApplyUpdates(qa, 1);
Using ApplyUpdates for connection is a preferred method of updating datasets rather than calling each individual dataset's ApplyUpdates method. For more information please read UniDAC Reference Manual.

Post Reply