TUniTable Delphi XE2 Transaction Error on MySQL Database
Posted: Tue 20 Dec 2011 16:25
I discovered a possible transaction bug with the "TUniTable" component when you enter into a transactional state and you're trying to edit and post some data.
It's definitely not the database, as I'm running MySQL 5 with InnoDB transaction tables. Also, this works in an earlier version of UniDAC on earlier versions of Delphi.
After you connected to the database via the "TUniConnection" component and linked to a table in the database on the "TUniTable" component, try the following:
The exception raised is as follow:
"Multiple transactions are not supported by the database".
This exact code can be replicated using an earlier version of UniDAC on Delphi 2010, which works 100%.
So all I can think of, is that there is a bug in your latest release for Delphi XE2??
I'm currently running UniDAC version 4.0.2 in Delphi XE2 Update 2.
Does anyone have any idea why this is happening? Or is this a confirmed bug and what do you suggest I do to get around this?
Thank you.
It's definitely not the database, as I'm running MySQL 5 with InnoDB transaction tables. Also, this works in an earlier version of UniDAC on earlier versions of Delphi.
After you connected to the database via the "TUniConnection" component and linked to a table in the database on the "TUniTable" component, try the following:
Code: Select all
UniTransaction1.StartTransaction;
UniTable1.Open;
UniTable1.Edit;
UniTable1.FieldByName('FirstName').AsString := 'John Doe';
UniTable1.Post; //-> This is where the error is raised
UniTransaction1.Commit;"Multiple transactions are not supported by the database".
This exact code can be replicated using an earlier version of UniDAC on Delphi 2010, which works 100%.
So all I can think of, is that there is a bug in your latest release for Delphi XE2??
I'm currently running UniDAC version 4.0.2 in Delphi XE2 Update 2.
Does anyone have any idea why this is happening? Or is this a confirmed bug and what do you suggest I do to get around this?
Thank you.