소스 검색

Use FPC trunk sqlscript instead of modified 2.6.4 version

Reinier Olislagers 11 년 전
부모
커밋
29e8959873
3개의 변경된 파일26개의 추가작업 그리고 13개의 파일을 삭제
  1. 6 1
      TurboBird.lpi
  2. 2 1
      TurboBird.lpr
  3. 18 11
      modsqlscript.pas

+ 6 - 1
TurboBird.lpi

@@ -101,7 +101,7 @@
         <PackageName Value="LCL"/>
         <PackageName Value="LCL"/>
       </Item6>
       </Item6>
     </RequiredPackages>
     </RequiredPackages>
-    <Units Count="40">
+    <Units Count="41">
       <Unit0>
       <Unit0>
         <Filename Value="TurboBird.lpr"/>
         <Filename Value="TurboBird.lpr"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
@@ -400,6 +400,11 @@
         <Filename Value="turbocommon.inc"/>
         <Filename Value="turbocommon.inc"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit39>
       </Unit39>
+      <Unit40>
+        <Filename Value="trunksqlscript.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="trunksqlscript"/>
+      </Unit40>
     </Units>
     </Units>
   </ProjectOptions>
   </ProjectOptions>
   <CompilerOptions>
   <CompilerOptions>

+ 2 - 1
TurboBird.lpr

@@ -22,7 +22,8 @@ uses
   NewDomain, SysTables, NewConstraint, NewEditField, Calen, Scriptdb,
   NewDomain, SysTables, NewConstraint, NewEditField, Calen, Scriptdb,
   UserPermissions, TableManage, BackupRestore, CreateUser, ChangePass,
   UserPermissions, TableManage, BackupRestore, CreateUser, ChangePass,
   PermissionManage, SQLHistory, CopyTable, dynlibs, ibase60dyn, dbInfo,
   PermissionManage, SQLHistory, CopyTable, dynlibs, ibase60dyn, dbInfo,
-  sysutils, Comparison, Update, topologicalsort, UnitFirebirdServices;
+  sysutils, Comparison, Update, topologicalsort, UnitFirebirdServices, 
+trunksqlscript;
 
 
 const
 const
   Major = 1;
   Major = 1;

+ 18 - 11
modsqlscript.pas

@@ -42,8 +42,12 @@ unit modsqlscript;
 
 
 interface
 interface
 
 
+{$IF FPC_FULLVERSION<20701}
 uses
 uses
-  Classes, SysUtils, sqlscript, db, dbconst, sqldb;
+  Classes, SysUtils, sqlscript, db, dbconst, sqldb, trunksqlscript;
+{$ELSE}
+// no uses
+{$ENDIF}
 
 
 {$IF FPC_FULLVERSION<20701}
 {$IF FPC_FULLVERSION<20701}
 type
 type
@@ -57,8 +61,7 @@ type
     end;
     end;
 
 
   { TModSQLScript }
   { TModSQLScript }
-
-    TModSQLScript = class (TCustomSQLscript)
+    TModSQLScript = class (TTrunkCustomSQLScript)
     private
     private
       FOnDirective: TSQLScriptDirectiveEvent;
       FOnDirective: TSQLScriptDirectiveEvent;
       FQuery   : TModCustomSQLQuery;
       FQuery   : TModCustomSQLQuery;
@@ -67,7 +70,7 @@ type
     protected
     protected
       procedure ExecuteStatement (SQLStatement: TStrings; var StopExecution: Boolean); override;
       procedure ExecuteStatement (SQLStatement: TStrings; var StopExecution: Boolean); override;
       procedure ExecuteDirective (Directive, Argument: String; var StopExecution: Boolean); override;
       procedure ExecuteDirective (Directive, Argument: String; var StopExecution: Boolean); override;
-      procedure ExecuteCommit; override;
+      procedure ExecuteCommit(CommitRetaining: boolean=true); override;
       Procedure SetDatabase (Value : TDatabase); virtual;
       Procedure SetDatabase (Value : TDatabase); virtual;
       Procedure SetTransaction(Value : TDBTransaction); virtual;
       Procedure SetTransaction(Value : TDBTransaction); virtual;
       Procedure CheckDatabase;
       Procedure CheckDatabase;
@@ -91,6 +94,7 @@ type
       property OnException;
       property OnException;
     end;
     end;
 
 
+
 implementation
 implementation
 
 
 
 
@@ -98,8 +102,6 @@ implementation
 
 
 procedure TModSQLScript.ExecuteStatement(SQLStatement: TStrings;
 procedure TModSQLScript.ExecuteStatement(SQLStatement: TStrings;
   var StopExecution: Boolean);
   var StopExecution: Boolean);
-var
-  statementtext: string;
 begin
 begin
   fquery.SQL.assign(SQLStatement);
   fquery.SQL.assign(SQLStatement);
   fquery.ExecSQL;
   fquery.ExecSQL;
@@ -112,10 +114,16 @@ begin
     FOnDirective (Self, Directive, Argument, StopExecution);
     FOnDirective (Self, Directive, Argument, StopExecution);
 end;
 end;
 
 
-procedure TModSQLScript.ExecuteCommit;
+procedure TModSQLScript.ExecuteCommit(CommitRetaining: boolean=true);
 begin
 begin
   if FTransaction is TSQLTransaction then
   if FTransaction is TSQLTransaction then
-    TSQLTransaction(FTransaction).CommitRetaining
+    if CommitRetaining then
+      TSQLTransaction(FTransaction).CommitRetaining
+    else
+      begin
+      TSQLTransaction(FTransaction).Commit;
+      TSQLTransaction(FTransaction).StartTransaction;
+      end
   else
   else
     begin
     begin
     FTransaction.Active := false;
     FTransaction.Active := false;
@@ -143,9 +151,8 @@ constructor TModSQLScript.Create(AOwner: TComponent);
 begin
 begin
   inherited Create(AOwner);
   inherited Create(AOwner);
   FQuery := TModCustomSQLQuery.Create(nil);
   FQuery := TModCustomSQLQuery.Create(nil);
-  // Corrections to fix parameter error:
-  FQuery.ParamCheck := false;
-  FQuery.ParseSQL := false;
+  FQuery.ParamCheck := false; // Do not parse for parameters; breaks use of e.g. select bla into :bla in Firebird procedures
+  FQuery.ParseSQL:= false; //added for extra protection against messing with parameters
 end;
 end;
 
 
 destructor TModSQLScript.Destroy;
 destructor TModSQLScript.Destroy;