|
@@ -1111,27 +1111,51 @@ end;
|
|
|
|
|
|
function TConnectionName.Commit(trans: TSQLHandle): boolean;
|
|
function TConnectionName.Commit(trans: TSQLHandle): boolean;
|
|
begin
|
|
begin
|
|
- // Do nothing.
|
|
|
|
|
|
+ //mysql_commit(FMySQL);
|
|
|
|
+ Result := mysql_query(FMySQL, 'COMMIT') = 0;
|
|
|
|
+ if not Result then
|
|
|
|
+ MySQLError(FMySQL, SErrExecuting, Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TConnectionName.RollBack(trans: TSQLHandle): boolean;
|
|
function TConnectionName.RollBack(trans: TSQLHandle): boolean;
|
|
begin
|
|
begin
|
|
- // Do nothing
|
|
|
|
|
|
+ //mysql_rollback(FMySQL);
|
|
|
|
+ Result := mysql_query(FMySQL, 'ROLLBACK') = 0;
|
|
|
|
+ if not Result then
|
|
|
|
+ MySQLError(FMySQL, SErrExecuting, Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TConnectionName.StartdbTransaction(trans: TSQLHandle; AParams : string): boolean;
|
|
function TConnectionName.StartdbTransaction(trans: TSQLHandle; AParams : string): boolean;
|
|
begin
|
|
begin
|
|
- // Do nothing
|
|
|
|
|
|
+ Result := mysql_query(FMySQL, 'START TRANSACTION') = 0;
|
|
|
|
+ if not Result then
|
|
|
|
+ MySQLError(FMySQL, SErrExecuting, Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TConnectionName.CommitRetaining(trans: TSQLHandle);
|
|
procedure TConnectionName.CommitRetaining(trans: TSQLHandle);
|
|
begin
|
|
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;
|
|
end;
|
|
|
|
|
|
procedure TConnectionName.RollBackRetaining(trans: TSQLHandle);
|
|
procedure TConnectionName.RollBackRetaining(trans: TSQLHandle);
|
|
begin
|
|
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;
|
|
end;
|
|
|
|
|
|
function TConnectionName.GetSchemaInfoSQL(SchemaType: TSchemaType;
|
|
function TConnectionName.GetSchemaInfoSQL(SchemaType: TSchemaType;
|