ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/runtime/ibxscript.pas
(Generate patch)

Comparing ibx/trunk/runtime/ibxscript.pas (file contents):
Revision 80 by tony, Mon Jan 1 11:31:07 2018 UTC vs.
Revision 139 by tony, Wed Jan 24 16:16:29 2018 UTC

# Line 428 | Line 428 | uses Sysutils, RegExpr;
428  
429   resourcestring
430    sTerminatorUnknownState = 'Statement Terminator in unexpected state (%d)';
431  sUnterminatedString = 'Unterminated string';
432  sUnknownSymbol = 'Unknown Symbol %d';
431    sNoSelectSQL = 'Select SQL Statements are not supported';
432    sStackUnderflow = 'Stack Underflow';
433    sNoParamQueries =  'Parameterised Queries are not supported';
434    sStackOverFlow = 'Stack Overflow';
435    sResolveQueryParam =  'Resolving Query Parameter: %s';
438  sNoCommit =  'Commit not allowed here';
439  sNoReconnect = 'Reconnect not allowed here';
436    sXMLStackUnderflow = 'XML Stack Underflow';
437    sInvalidEndTag = 'XML End Tag Mismatch - %s';
438    sXMLStackOverFlow = 'XML Stack Overflow';
# Line 566 | Line 562 | begin
562   end;
563  
564   procedure TCustomIBXScript.DoReconnect;
565 + var LoginPrompt: boolean;
566   begin
567    with GetTransaction do
568      if InTransaction then Commit;
569 +  LoginPrompt := Database.LoginPrompt;
570 +  Database.LoginPrompt := false;
571    Database.Connected := false;
572    Database.Connected := true;
573 +  Database.LoginPrompt := LoginPrompt;
574    GetTransaction.Active := true;
575   end;
576  
577   procedure TCustomIBXScript.ExecSQL(stmt: string);
578   var DDL: boolean;
579      I: integer;
580    stats: TPerfCounters;
580   begin
581     Database.Connected := true;
582     FISQL.SQL.Text := stmt;
# Line 652 | Line 651 | end;
651  
652   procedure TCustomIBXScript.SetDatabase(AValue: TIBDatabase);
653   begin
654 < if FDatabase = AValue then Exit;
654 > if not (csLoading in ComponentState) and (FDatabase = AValue) then Exit;
655   FDatabase := AValue;
656   FISQL.Database := AValue;
657   FIBXMLProcessor.Database := AValue;
# Line 849 | Line 848 | var  RegexObj: TRegExpr;
848       param: string;
849       Terminator: char;
850       FileName: string;
851 +     DBConnected: boolean;
852 +     LoginPrompt: boolean;
853   begin
854    Result := false;
855    ucStmt := AnsiUpperCase(stmt);
# Line 966 | Line 967 | begin
967        begin
968          if Database.Attachment.CharSetName2CharSetID(param,charsetid) then
969          begin
970 +          DBConnected := Database.Connected;
971 +          LoginPrompt := Database.LoginPrompt;
972 +          Database.LoginPrompt := false;
973 +          Database.Connected := false;
974            Database.Params.Values['lc_ctype'] := param;
975 <          if Database.Connected then
976 <            DoReconnect;
975 >          Database.Connected := DBConnected;
976 >          Database.LoginPrompt := LoginPrompt;
977          end
978          else
979            raise Exception.CreateFmt(sInvalidCharacterSet, [param,stmt]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines