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