Explorar o código

change Transcation isolation parameters
modified: TurboBird.lpi
modified: TurboBird.lpr
modified: main.pas
modified: querywindow.pas

motaz %!s(int64=11) %!d(string=hai) anos
pai
achega
7bbe8080c7
Modificáronse 4 ficheiros con 80 adicións e 74 borrados
  1. 65 70
      TurboBird.lpi
  2. 1 1
      TurboBird.lpr
  3. 13 2
      main.pas
  4. 1 1
      querywindow.pas

+ 65 - 70
TurboBird.lpi

@@ -62,8 +62,8 @@
         <UnitName Value="TurboBird"/>
         <EditorIndex Value="8"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="4"/>
-        <CursorPos X="14" Y="30"/>
+        <TopLine Value="1"/>
+        <CursorPos X="24" Y="5"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -74,10 +74,11 @@
         <HasResources Value="True"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="main"/>
+        <IsVisibleTab Value="True"/>
         <EditorIndex Value="4"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="1"/>
-        <CursorPos X="1" Y="12"/>
+        <TopLine Value="750"/>
+        <CursorPos X="3" Y="754"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
@@ -122,11 +123,10 @@
         <HasResources Value="True"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="QueryWindow"/>
-        <IsVisibleTab Value="True"/>
         <EditorIndex Value="0"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="1376"/>
-        <CursorPos X="1" Y="1294"/>
+        <TopLine Value="940"/>
+        <CursorPos X="1" Y="950"/>
         <UsageCount Value="200"/>
         <Bookmarks Count="2">
           <Item0 X="3" Y="1128" ID="0"/>
@@ -468,8 +468,8 @@
         <UnitName Value="SysTables"/>
         <EditorIndex Value="5"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="298"/>
-        <CursorPos X="3" Y="309"/>
+        <TopLine Value="101"/>
+        <CursorPos X="3" Y="103"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
       </Unit42>
@@ -549,8 +549,8 @@
         <UnitName Value="Scriptdb"/>
         <EditorIndex Value="9"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="445"/>
-        <CursorPos X="63" Y="445"/>
+        <TopLine Value="1"/>
+        <CursorPos X="16" Y="29"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
       </Unit51>
@@ -743,7 +743,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="128"/>
         <CursorPos X="3" Y="148"/>
-        <UsageCount Value="192"/>
+        <UsageCount Value="193"/>
         <Loaded Value="True"/>
       </Unit71>
       <Unit72>
@@ -770,7 +770,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
         <CursorPos X="51" Y="14"/>
-        <UsageCount Value="163"/>
+        <UsageCount Value="164"/>
       </Unit74>
       <Unit75>
         <Filename Value="/usr/lib/lazarus/0.9.30/lcl/comctrls.pp"/>
@@ -963,7 +963,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="64"/>
         <CursorPos X="16" Y="66"/>
-        <UsageCount Value="131"/>
+        <UsageCount Value="132"/>
       </Unit98>
       <Unit99>
         <Filename Value="../../FromInternet/fpc2.4/fpc-2.4.4/packages/ibase/src/ibase60dyn.pp"/>
@@ -998,7 +998,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
         <CursorPos X="15" Y="255"/>
-        <UsageCount Value="118"/>
+        <UsageCount Value="119"/>
       </Unit102>
       <Unit103>
         <Filename Value="/usr/share/fpcsrc/2.6.0/rtl/inc/systemh.inc"/>
@@ -1032,7 +1032,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
         <CursorPos X="1" Y="1"/>
-        <UsageCount Value="64"/>
+        <UsageCount Value="65"/>
       </Unit106>
       <Unit107>
         <Filename Value="../../../lazarus/lcl/interfaces/win32/win32object.inc"/>
@@ -1110,7 +1110,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="266"/>
         <CursorPos X="40" Y="171"/>
-        <UsageCount Value="28"/>
+        <UsageCount Value="29"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
       </Unit116>
@@ -1140,123 +1140,123 @@
     <JumpHistory Count="30" HistoryIndex="29">
       <Position1>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="903" Column="3" TopLine="901"/>
+        <Caret Line="163" Column="11" TopLine="140"/>
       </Position1>
       <Position2>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="2032" Column="3" TopLine="1652"/>
+        <Caret Line="1254" Column="15" TopLine="1242"/>
       </Position2>
       <Position3>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Caret Line="1255" Column="15" TopLine="1243"/>
       </Position3>
       <Position4>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1242" Column="36" TopLine="1232"/>
+        <Caret Line="1254" Column="15" TopLine="1242"/>
       </Position4>
       <Position5>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1243" Column="27" TopLine="1232"/>
+        <Caret Line="1255" Column="15" TopLine="1243"/>
       </Position5>
       <Position6>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1269" Column="36" TopLine="1252"/>
+        <Caret Line="1256" Column="15" TopLine="1244"/>
       </Position6>
       <Position7>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1270" Column="27" TopLine="1252"/>
+        <Caret Line="905" Column="3" TopLine="902"/>
       </Position7>
       <Position8>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1282" Column="27" TopLine="1268"/>
+        <Caret Line="1154" Column="22" TopLine="1140"/>
       </Position8>
       <Position9>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="2105" Column="17" TopLine="2084"/>
+        <Caret Line="1409" Column="1" TopLine="1381"/>
       </Position9>
       <Position10>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Caret Line="905" Column="3" TopLine="903"/>
       </Position10>
       <Position11>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="163" Column="11" TopLine="140"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="12" Column="1" TopLine="1"/>
       </Position11>
       <Position12>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1184" Column="17" TopLine="1161"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3814" Column="18" TopLine="3806"/>
       </Position12>
       <Position13>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1202" Column="32" TopLine="1179"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3829" Column="1" TopLine="3807"/>
       </Position13>
       <Position14>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1242" Column="21" TopLine="1219"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3736" Column="13" TopLine="3729"/>
       </Position14>
       <Position15>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="1269" Column="21" TopLine="1246"/>
+        <Caret Line="175" Column="41" TopLine="158"/>
       </Position15>
       <Position16>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1282" Column="36" TopLine="1259"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="261" Column="57" TopLine="242"/>
       </Position16>
       <Position17>
         <Filename Value="querywindow.pas"/>
-        <Caret Line="2105" Column="26" TopLine="2081"/>
+        <Caret Line="950" Column="1" TopLine="940"/>
       </Position17>
       <Position18>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Filename Value="scriptdb.pas"/>
+        <Caret Line="451" Column="45" TopLine="433"/>
       </Position18>
       <Position19>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="163" Column="11" TopLine="140"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="754" Column="3" TopLine="750"/>
       </Position19>
       <Position20>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1254" Column="15" TopLine="1242"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="1" Column="1" TopLine="1"/>
       </Position20>
       <Position21>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1255" Column="15" TopLine="1243"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="69" Column="11" TopLine="41"/>
       </Position21>
       <Position22>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1254" Column="15" TopLine="1242"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="146" Column="21" TopLine="118"/>
       </Position22>
       <Position23>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1255" Column="15" TopLine="1243"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="478" Column="25" TopLine="450"/>
       </Position23>
       <Position24>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1256" Column="15" TopLine="1244"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="755" Column="18" TopLine="727"/>
       </Position24>
       <Position25>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="905" Column="3" TopLine="902"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="756" Column="18" TopLine="728"/>
       </Position25>
       <Position26>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="2036" Column="3" TopLine="2047"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="757" Column="18" TopLine="729"/>
       </Position26>
       <Position27>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1154" Column="22" TopLine="1140"/>
+        <Filename Value="systables.pas"/>
+        <Caret Line="309" Column="3" TopLine="298"/>
       </Position27>
       <Position28>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1409" Column="1" TopLine="1381"/>
+        <Filename Value="systables.pas"/>
+        <Caret Line="87" Column="1" TopLine="54"/>
       </Position28>
       <Position29>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="905" Column="3" TopLine="903"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3825" Column="26" TopLine="3853"/>
       </Position29>
       <Position30>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="2041" Column="3" TopLine="2046"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="4218" Column="1" TopLine="4184"/>
       </Position30>
     </JumpHistory>
   </ProjectOptions>
@@ -1274,11 +1274,6 @@
       </Optimizations>
     </CodeGeneration>
     <Linking>
-      <Debugging>
-        <GenerateDebugInfo Value="False"/>
-        <StripSymbols Value="True"/>
-      </Debugging>
-      <LinkSmart Value="True"/>
       <Options>
         <Win32>
           <GraphicApplication Value="True"/>

+ 1 - 1
TurboBird.lpr

@@ -2,7 +2,7 @@
 {  TurboBird: FireBird database administration and management tool          }
 {  Developed by: Motaz Abdel Azeem http://code.sd/                          }
 {  Start development :  5.Dec.2009                                          }
-{  Last updated      :  3.Jan.2014                                          }
+{  Last updated      : 10.Jan.2014                                          }
 {  License           : GPL for GUI, LGPL for Units                          }
 {***************************************************************************}
 

+ 13 - 2
main.pas

@@ -258,6 +258,7 @@ type
     function Is64bit: Boolean;
     function Is32bit: Boolean;
     function getConfigurationDirectory: string;
+    procedure setTransactionIsolation(Params: TStringList);
   end;
 
 var
@@ -748,6 +749,14 @@ begin
     ExtractFilePath(ParamStr(0));
 end;
 
+procedure TfmMain.setTransactionIsolation(Params: TStringList);
+begin
+  Params.Clear;
+  Params.Add('isc_tpb_read_commited');
+  Params.Add('isc_tpb_concurrency');
+  Params.Add('isc_tpb_nowait');
+end;
+
 (****************  Fill and show constraints form ************************)
 
 procedure TfmMain.FillAndShowConstraintsForm(Form: TfmTableManage; ATableName: string; dbIndex: Integer);
@@ -3733,6 +3742,7 @@ var
   ParentText: string;
 begin
   Node:= tvMain.Selected;
+  if node <> nil then
   if Node.Level = 1 then // Database level, Fill objects
   begin
     // Do nothing
@@ -3822,7 +3832,8 @@ begin
       Node.Collapse(False);
   end
   else  // Expand objects root (Tables, Procedures, etc)
-  if (Node.Parent <> nil) and (Node.Parent.Parent <> nil) and (Node.Parent.Parent.Parent = nil) and (not Node.Expanded) then
+  if (Node.Parent <> nil) and (Node.Parent.Parent <> nil) and
+     (Node.Parent.Parent.Parent = nil) and (not Node.Expanded) then
   begin
     if Node.HasChildren then
     begin
@@ -3879,7 +3890,7 @@ begin
             Index:= FilePos(F) - 1;
             IBConnection:= TIBConnection.Create(nil);
             SQLTrans:= TSQLTransaction.Create(nil);
-            SqlTrans.Params.Add('isc_tpb_read_commited');
+            setTransactionIsolation(SQLTrans.Params);
 
             IBConnection.Transaction:= SQLTrans;
             SQLTrans.DataBase:= IBConnection;

+ 1 - 1
querywindow.pas

@@ -946,7 +946,7 @@ begin
   // Initialize new instance of IBConnection and SQLTransaction to the current Query Window
   ibConnection:= TIBConnection.Create(nil);
   SqlTrans:= TSQLTransaction.Create(nil);
-  SqlTrans.Params.Add('isc_tpb_read_commited');
+  fmMain.setTransactionIsolation(SqlTrans.Params);
   SqlTrans.DataBase:= ibConnection;
 
   // Set connection parameters to IBConnection