Implements support for MySQL Transactions. Mantis #19137. Patch by Ludo Brands.

git-svn-id: trunk@22598 -
This commit is contained in:
lacak 2012-10-09 05:26:27 +00:00
parent 6eade12d3f
commit d0fbfe4525

View File

@ -1111,27 +1111,51 @@ end;
function TConnectionName.Commit(trans: TSQLHandle): boolean;
begin
// Do nothing.
//mysql_commit(FMySQL);
Result := mysql_query(FMySQL, 'COMMIT') = 0;
if not Result then
MySQLError(FMySQL, SErrExecuting, Self);
end;
function TConnectionName.RollBack(trans: TSQLHandle): boolean;
begin
// Do nothing
//mysql_rollback(FMySQL);
Result := mysql_query(FMySQL, 'ROLLBACK') = 0;
if not Result then
MySQLError(FMySQL, SErrExecuting, Self);
end;
function TConnectionName.StartdbTransaction(trans: TSQLHandle; AParams : string): boolean;
begin
// Do nothing
Result := mysql_query(FMySQL, 'START TRANSACTION') = 0;
if not Result then
MySQLError(FMySQL, SErrExecuting, Self);
end;
procedure TConnectionName.CommitRetaining(trans: TSQLHandle);
begin
// Do nothing
{$IFDEF MYSQL50_UP}
if mysql_query(FMySQL, 'COMMIT AND CHAIN') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
{$ELSE}
if mysql_query(FMySQL, 'COMMIT') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
if mysql_query(FMySQL, 'START TRANSACTION') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
{$ENDIF}
end;
procedure TConnectionName.RollBackRetaining(trans: TSQLHandle);
begin
// Do nothing
{$IFDEF MYSQL50_UP}
if mysql_query(FMySQL, 'ROLLBACK AND CHAIN') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
{$ELSE}
if mysql_query(FMySQL, 'ROLLBACK') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
if mysql_query(FMySQL, 'START TRANSACTION') <> 0 then
MySQLError(FMySQL, SErrExecuting, Self);
{$ENDIF}
end;
function TConnectionName.GetSchemaInfoSQL(SchemaType: TSchemaType;