Hi,

I added 2 missing abstract methods from the parent class to the TSQLConnection class. StartTransaction and EndTransaction. The compiler is complaining about a few others, but I haven't had a look at them yet.

Regards,
  - Graeme -



Index: sqldb.pp
===================================================================
--- sqldb.pp    (revision 2006)
+++ sqldb.pp    (working copy)
@@ -104,10 +104,12 @@
     destructor Destroy; override;
     property ConnOptions: TConnOptions read FConnOptions;
     procedure ExecuteDirect(SQL : String); overload; virtual;
-    procedure ExecuteDirect(SQL : String; Transaction : TSQLTransaction); 
overload; virtual;
+    procedure ExecuteDirect(SQL : String; ATransaction : TSQLTransaction); 
overload; virtual;
     procedure GetTableNames(List : TStrings; SystemTables : Boolean = false); 
virtual;
     procedure GetProcedureNames(List : TStrings); virtual;
     procedure GetFieldNames(const TableName : string; List :  TStrings); 
virtual;
+    procedure StartTransaction; override;
+    procedure EndTransaction; override;
   published
     property Password : string read FPassword write FPassword;
     property Transaction : TSQLTransaction read FTransaction write 
SetTransaction;
@@ -176,7 +178,7 @@
 //    FSchemaInfo          : TSchemaInfo;
 
     procedure FreeFldBuffers;
-    procedure InitUpdates(SQL : string);
+    procedure InitUpdates(ASQL : string);
     function GetIndexDefs : TIndexDefs;
     function GetStatementType : TStatementType;
     procedure SetIndexDefs(AValue : TIndexDefs);
@@ -187,7 +189,7 @@
     procedure OnChangeSQL(Sender : TObject);
 
     procedure Execute;
-    Procedure SQLParser(var SQL : string);
+    Procedure SQLParser(var ASQL : string);
     procedure ApplyFilter;
     Function AddFilter(SQLstr : string) : string;
   protected
@@ -316,16 +318,16 @@
   ExecuteDirect(SQL,FTransaction);
 end;
 
-Procedure TSQLConnection.ExecuteDirect(SQL: String; Transaction : 
TSQLTransaction);
+Procedure TSQLConnection.ExecuteDirect(SQL: String; ATransaction : 
TSQLTransaction);
 
 var Cursor : TSQLCursor;
 
 begin
-  if not assigned(Transaction) then
+  if not assigned(ATransaction) then
     DatabaseError(SErrTransactionnSet);
 
   if not Connected then Open;
-  if not Transaction.Active then Transaction.StartTransaction;
+  if not ATransaction.Active then ATransaction.StartTransaction;
 
   try
     Cursor := AllocateCursorHandle;
@@ -337,8 +339,8 @@
 
     Cursor.FStatementType := stNone;
 
-    PrepareStatement(cursor,Transaction,SQL,Nil);
-    execute(cursor,Transaction, Nil);
+    PrepareStatement(cursor,ATransaction,SQL,Nil);
+    execute(cursor,ATransaction, Nil);
     UnPrepareStatement(Cursor);
   finally;
     DeAllocateCursorHandle(Cursor);
@@ -388,6 +390,16 @@
   GetDBInfo(stColumns,TableName,'column_name',List);
 end;
 
+procedure TSQLConnection.StartTransaction;
+begin
+  FTransaction.StartTransaction;
+end;
+
+procedure TSQLConnection.EndTransaction;
+begin
+  FTransaction.EndTransaction;
+end;
+
 function TSQLConnection.GetAsSQLText(Field : TField) : string;
 
 begin
@@ -627,7 +639,7 @@
       FCursor := Db.AllocateCursorHandle;
 
     FSQLBuf := TrimRight(FSQL.Text);
-    
+
     if FSQLBuf = '' then
       DatabaseError(SErrNoStatement);
 
@@ -679,10 +691,10 @@
   result := (Database as tSQLConnection).LoadField(FCursor,FieldDef,buffer)
 end;
 
-procedure TSQLQuery.DataConvert(Field: TField; Source, Dest: Pointer; 
ToNative: Boolean); 
+procedure TSQLQuery.DataConvert(Field: TField; Source, Dest: Pointer; 
ToNative: Boolean);
 
 begin
-  { 
+  {
     all data is in native format for these types, so no conversion is needed.
   }
   If not (Field.DataType in [ftDate,ftTime,ftDateTime]) then
@@ -721,7 +733,7 @@
   end;
 end;
 
-procedure TSQLQuery.SQLParser(var SQL : string);
+procedure TSQLQuery.SQLParser(var ASQL : string);
 
 type TParsePart = (ppStart,ppSelect,ppWhere,ppFrom,ppOrder,ppComment,ppBogus);
 
@@ -733,12 +745,12 @@
   StrLength               : Integer;
 
 begin
-  PSQL:=Pchar(SQL);
+  PSQL:=Pchar(ASQL);
   ParsePart := ppStart;
 
   CurrentP := PSQL-1;
   PhraseP := PSQL;
-  
+
   FWhereStartPos := 0;
   FWhereStopPos := 0;
 
@@ -754,7 +766,7 @@
         Setlength(S,strLength);
         if strLength > 0 then Move(PhraseP^,S[1],(strLength));
         s := uppercase(s);
-        
+
         case ParsePart of
           ppStart  : begin
                      FCursor.FStatementType := (Database as 
tsqlconnection).StrToStatementType(s);
@@ -815,13 +827,13 @@
   until CurrentP^=#0;
   if (FWhereStartPos > 0) and (FWhereStopPos > 0) then
     begin
-    system.insert('(',SQL,FWhereStartPos+1);
+    system.insert('(',ASQL,FWhereStartPos+1);
     inc(FWhereStopPos);
-    system.insert(')',SQL,FWhereStopPos);
+    system.insert(')',ASQL,FWhereStopPos);
     end
 end;
 
-procedure TSQLQuery.InitUpdates(SQL : string);
+procedure TSQLQuery.InitUpdates(ASQL : string);
 
 
 begin
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to