From 06300bc054ff0c58de4f8b06e6ebeec5c4655124 Mon Sep 17 00:00:00 2001 From: joost Date: Tue, 9 Aug 2005 12:43:49 +0000 Subject: [PATCH] - added tSqlConnection.ExecuteDirect git-svn-id: trunk@829 - --- fcl/db/sqldb/sqldb.pp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/fcl/db/sqldb/sqldb.pp b/fcl/db/sqldb/sqldb.pp index 4ffc0146c7..8f6e2153d4 100644 --- a/fcl/db/sqldb/sqldb.pp +++ b/fcl/db/sqldb/sqldb.pp @@ -56,6 +56,9 @@ const { TSQLConnection } type + + { TSQLConnection } + TSQLConnection = class (TDatabase) private FPassword : string; @@ -101,6 +104,8 @@ type property Handle: Pointer read GetHandle; destructor Destroy; override; property ConnOptions: TConnOptions read FConnOptions; + procedure ExecuteDirect(SQL : String); overload; virtual; + procedure ExecuteDirect(SQL : String; Transaction : TSQLTransaction); overload; virtual; published property Password : string read FPassword write FPassword; property Transaction : TSQLTransaction read FTransaction write SetTransaction; @@ -299,6 +304,41 @@ begin inherited Destroy; end; +Procedure TSQLConnection.ExecuteDirect(SQL: String); + +begin + ExecuteDirect(SQL,FTransaction); +end; + +Procedure TSQLConnection.ExecuteDirect(SQL: String; Transaction : TSQLTransaction); + +var Cursor : TSQLCursor; + +begin + if not assigned(Transaction) then + DatabaseError(SErrTransactionnSet); + + if not Connected then Open; + if not Transaction.Active then Transaction.StartTransaction; + + try + Cursor := AllocateCursorHandle; + + SQL := TrimRight(SQL); + + if SQL = '' then + DatabaseError(SErrNoStatement); + + Cursor.FStatementType := stNone; + + PrepareStatement(cursor,Transaction,SQL,Nil); + execute(cursor,Transaction, Nil); + CloseStatement(Cursor); + finally; + DeAllocateCursorHandle(Cursor); + end; +end; + function TSQLConnection.GetAsSQLText(Field : TField) : string; begin