Browse Source

Fixing Query Window error tab result
modified: TurboBird.lpi
modified: querywindow.pas

motaz 13 years ago
parent
commit
3edf045fb0
2 changed files with 97 additions and 75 deletions
  1. 71 71
      TurboBird.lpi
  2. 26 4
      querywindow.pas

+ 71 - 71
TurboBird.lpi

@@ -116,10 +116,11 @@
         <ComponentName Value="fmQueryWindow"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="QueryWindow"/>
+        <IsVisibleTab Value="True"/>
         <EditorIndex Value="6"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="669"/>
-        <CursorPos X="17" Y="677"/>
+        <TopLine Value="250"/>
+        <CursorPos X="10" Y="255"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
@@ -625,7 +626,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="13"/>
         <CursorPos X="22" Y="54"/>
-        <UsageCount Value="186"/>
+        <UsageCount Value="187"/>
       </Unit60>
       <Unit61>
         <Filename Value="unitfirebirdservices.pas"/>
@@ -691,7 +692,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="3"/>
         <CursorPos X="71" Y="7"/>
-        <UsageCount Value="156"/>
+        <UsageCount Value="157"/>
       </Unit68>
       <Unit69>
         <Filename Value="changepass.pas"/>
@@ -702,7 +703,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="3"/>
         <CursorPos X="88" Y="14"/>
-        <UsageCount Value="155"/>
+        <UsageCount Value="156"/>
       </Unit69>
       <Unit70>
         <Filename Value="permissionmanage.pas"/>
@@ -713,7 +714,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="341"/>
         <CursorPos X="54" Y="343"/>
-        <UsageCount Value="153"/>
+        <UsageCount Value="154"/>
       </Unit70>
       <Unit71>
         <Filename Value="sqlhistory.pas"/>
@@ -724,7 +725,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
         <CursorPos X="35" Y="66"/>
-        <UsageCount Value="138"/>
+        <UsageCount Value="139"/>
       </Unit71>
       <Unit72>
         <Filename Value="../../lazarus/lazarus/lcl/include/menuitem.inc"/>
@@ -749,7 +750,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="18"/>
         <CursorPos X="1" Y="44"/>
-        <UsageCount Value="109"/>
+        <UsageCount Value="110"/>
       </Unit74>
       <Unit75>
         <Filename Value="/usr/lib/lazarus/0.9.30/lcl/comctrls.pp"/>
@@ -941,7 +942,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="20"/>
         <CursorPos X="22" Y="41"/>
-        <UsageCount Value="77"/>
+        <UsageCount Value="78"/>
       </Unit98>
       <Unit99>
         <Filename Value="../../FromInternet/fpc2.4/fpc-2.4.4/packages/ibase/src/ibase60dyn.pp"/>
@@ -972,12 +973,11 @@
         <ComponentName Value="fmComparison"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="Comparison"/>
-        <IsVisibleTab Value="True"/>
         <EditorIndex Value="2"/>
         <WindowIndex Value="0"/>
         <TopLine Value="1396"/>
         <CursorPos X="81" Y="1423"/>
-        <UsageCount Value="64"/>
+        <UsageCount Value="65"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
       </Unit102>
@@ -1000,124 +1000,124 @@
     </Units>
     <JumpHistory Count="30" HistoryIndex="29">
       <Position1>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="1039" Column="45" TopLine="1020"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="419" Column="32" TopLine="420"/>
       </Position1>
       <Position2>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="639" Column="1" TopLine="618"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="468" Column="20" TopLine="422"/>
       </Position2>
       <Position3>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="858" Column="66" TopLine="831"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="582" Column="14" TopLine="559"/>
       </Position3>
       <Position4>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="842" Column="24" TopLine="829"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="240" Column="3" TopLine="238"/>
       </Position4>
       <Position5>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="184" Column="23" TopLine="153"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="553" Column="17" TopLine="476"/>
       </Position5>
       <Position6>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="146" Column="3" TopLine="144"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="118" Column="1" TopLine="103"/>
       </Position6>
       <Position7>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="489" Column="1" TopLine="465"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="251" Column="1" TopLine="234"/>
       </Position7>
       <Position8>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="180" Column="39" TopLine="156"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="468" Column="14" TopLine="444"/>
       </Position8>
       <Position9>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="91" Column="15" TopLine="63"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="332" Column="3" TopLine="324"/>
       </Position9>
       <Position10>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="20" Column="13" TopLine="13"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="1" Column="1" TopLine="1"/>
       </Position10>
       <Position11>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="191" Column="1" TopLine="186"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="466" Column="24" TopLine="438"/>
       </Position11>
       <Position12>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="151" Column="14" TopLine="146"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="519" Column="24" TopLine="491"/>
       </Position12>
       <Position13>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="27" Column="1" TopLine="10"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="549" Column="16" TopLine="521"/>
       </Position13>
       <Position14>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="15" Column="53" TopLine="11"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="570" Column="9" TopLine="558"/>
       </Position14>
       <Position15>
-        <Filename Value="newtable.pas"/>
-        <Caret Line="161" Column="3" TopLine="144"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="1" Column="1" TopLine="1"/>
       </Position15>
       <Position16>
-        <Filename Value="systables.pas"/>
-        <Caret Line="64" Column="14" TopLine="47"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="466" Column="24" TopLine="438"/>
       </Position16>
       <Position17>
-        <Filename Value="main.pas"/>
-        <Caret Line="3936" Column="28" TopLine="3929"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="519" Column="24" TopLine="491"/>
       </Position17>
       <Position18>
-        <Filename Value="main.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="549" Column="16" TopLine="521"/>
       </Position18>
       <Position19>
-        <Filename Value="main.pas"/>
-        <Caret Line="73" Column="15" TopLine="45"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="570" Column="14" TopLine="558"/>
       </Position19>
       <Position20>
-        <Filename Value="main.pas"/>
-        <Caret Line="1810" Column="33" TopLine="1782"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="1" Column="1" TopLine="1"/>
       </Position20>
       <Position21>
-        <Filename Value="main.pas"/>
-        <Caret Line="1832" Column="56" TopLine="1804"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="466" Column="35" TopLine="438"/>
       </Position21>
       <Position22>
-        <Filename Value="main.pas"/>
-        <Caret Line="1902" Column="27" TopLine="1913"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="519" Column="30" TopLine="491"/>
       </Position22>
       <Position23>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="86" Column="39" TopLine="73"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="549" Column="30" TopLine="521"/>
       </Position23>
       <Position24>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="885" Column="35" TopLine="868"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="586" Column="29" TopLine="558"/>
       </Position24>
       <Position25>
-        <Filename Value="systables.pas"/>
-        <Caret Line="298" Column="29" TopLine="294"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="1" Column="1" TopLine="1"/>
       </Position25>
       <Position26>
-        <Filename Value="systables.pas"/>
-        <Caret Line="15" Column="18" TopLine="1"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="466" Column="23" TopLine="438"/>
       </Position26>
       <Position27>
-        <Filename Value="systables.pas"/>
-        <Caret Line="300" Column="41" TopLine="300"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="584" Column="18" TopLine="569"/>
       </Position27>
       <Position28>
-        <Filename Value="systables.pas"/>
-        <Caret Line="323" Column="23" TopLine="300"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="332" Column="3" TopLine="321"/>
       </Position28>
       <Position29>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="519" Column="19" TopLine="507"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="601" Column="3" TopLine="599"/>
       </Position29>
       <Position30>
-        <Filename Value="comparison.pas"/>
-        <Caret Line="883" Column="35" TopLine="872"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="118" Column="14" TopLine="106"/>
       </Position30>
     </JumpHistory>
   </ProjectOptions>

+ 26 - 4
querywindow.pas

@@ -115,6 +115,7 @@ type
     fOptions: set of TSynSearchOption;
     ibConnection: TIBConnection;
     SqlTrans: TSQLTransaction;
+    function GetNewTabNum: string;
   public
     OnCommit: TNotifyEvent;
     procedure Init(dbIndex: Integer);
@@ -246,6 +247,18 @@ begin
     meQuery.Lines.SaveToFile(SaveDialog1.FileName);
 end;
 
+function TfmQueryWindow.GetNewTabNum: string;
+var
+  i: Integer;
+  Cnt: Integer;
+begin
+  Cnt:= 0;
+  for i:= 0 to PageControl1.ControlCount - 1 do
+  if PageControl1.Pages[i].TabVisible then
+   Inc(Cnt);
+  Result:= IntToStr(Cnt);
+end;
+
 procedure TfmQueryWindow.Init(dbIndex: Integer);
 begin
   fdbIndex:= dbIndex;
@@ -332,7 +345,7 @@ begin
   ATab:= TTabSheet.Create(nil);
   Result:= ATab;
   ATab.Parent:= PageControl1;
-  ATab.Caption:= 'Result # ' + IntToStr(PageControl1.PageCount) + AdditionalTitle;
+  ATab.Caption:= 'Result # ' + GetNewTabNum + ' ' + AdditionalTitle;
   if QueryType = 1 then // Select, need record set result
   begin
     // Query
@@ -448,10 +461,10 @@ begin
         else
           StartLine:= EndLine + 1;
 
-
         if Trim(QueryPart) <> '' then   // Select
         if QueryType = 1 then
         begin
+          ATab:= nil;
           try
             ATab:= CreateResultTab(1, SqlQuery, SqlScript, meResult);
             ATab.ImageIndex:= 0;
@@ -462,9 +475,10 @@ begin
           except
           on e: exception do
           begin
-            ATab.Free;
+            if Assigned(ATab) then
+              ATab.TabVisible:= False;
             SetLength(ResultControls, High(ResultControls));
-            setlength(ParentResultControls, High(ParentResultControls));
+            SetLength(ParentResultControls, High(ParentResultControls));
             ATab:= CreateResultTab(2, SqlQuery, SqlScript, meResult);
             PageControl1.ActivePage:= ATab;
 
@@ -479,6 +493,7 @@ begin
         else  // Execute
         if QueryType = 2 then
         begin
+          ATab:= nil;
           ATab:= CreateResultTab(2, SqlQuery, SqlScript, meResult);
           ATab.ImageIndex:= 1;
           SqlType:= GetSQLType(QueryPart, Command);
@@ -513,6 +528,8 @@ begin
           except
           on e: exception do
           begin
+            if Assigned(ATab) then
+              ATab.TabVisible:= False;
             ATab:= CreateResultTab(2, SqlQuery, SqlScript, meResult);
             PageControl1.ActivePage:= ATab;
             meResult.Text:= e.message;
@@ -541,6 +558,8 @@ begin
   except
   on e: exception do
   begin
+    if Assigned(ATab) then
+      ATab.TabVisible:= False;
     ATab:= CreateResultTab(2, SqlQuery, SqlScript, meResult);
     ATab.ImageIndex:= 2;
     PageControl1.ActivePage:= ATab;
@@ -561,6 +580,7 @@ var
   meResult: TMemo;
   ATab: TTabSheet;
 begin
+  ATab:= nil;
   try
     StartTime:= Now;
     ATab:= CreateResultTab(3, SqlQuery, SqlScript, meResult);
@@ -575,6 +595,8 @@ begin
   on e: exception do
   begin
     Result:= False;
+    if Assigned(ATab) then
+      ATab.TabVisible:= False;
     ATab:= CreateResultTab(2, SqlQuery, SqlScript, meResult);
     PageControl1.ActivePage:= ATab;
     meResult.Text:= e.Message;