瀏覽代碼

Load library manually in linux: libfbclient.so.2 instead of libfbclient.so that never exists
modified: TurboBird.lpi
modified: TurboBird.lpr
modified: TurboBird.res
modified: main.lfm
modified: main.lrs
modified: main.pas
modified: querywindow.pas

motaz 11 年之前
父節點
當前提交
3a93020c16
共有 7 個文件被更改,包括 50 次插入31 次删除
  1. 2 2
      TurboBird.lpi
  2. 15 5
      TurboBird.lpr
  3. 二進制
      TurboBird.res
  4. 9 9
      main.lfm
  5. 11 11
      main.lrs
  6. 2 2
      main.pas
  7. 11 2
      querywindow.pas

+ 2 - 2
TurboBird.lpi

@@ -18,8 +18,8 @@
       <AutoIncrementBuild Value="True"/>
       <MajorVersionNr Value="1"/>
       <MinorVersionNr Value="1"/>
-      <RevisionNr Value="9"/>
-      <BuildNr Value="1100"/>
+      <RevisionNr Value="92"/>
+      <BuildNr Value="1101"/>
       <StringTable ProductVersion="0.9"/>
     </VersionInfo>
     <BuildModes Count="2">

+ 15 - 5
TurboBird.lpr

@@ -1,8 +1,8 @@
 {***************************************************************************}
 {  TurboBird: FireBird database administration and management tool          }
-{  Developed by: Motaz Abdel Azeem http://code.sd/                          }
+{  Started by  : Motaz Abdel Azeem http://code.sd/                          }
 {  Start development :  5.Dec.2009                                          }
-{  Last updated      : 12.Apr.2014                                          }
+{  Last updated      :  9.Apr.2014                                          }
 {  License           : GPL for GUI, LGPL for Units                          }
 {***************************************************************************}
 
@@ -23,17 +23,17 @@ uses
   UserPermissions, TableManage, BackupRestore, CreateUser, ChangePass,
   PermissionManage, SQLHistory, CopyTable, dynlibs, ibase60dyn, dbInfo,
   sysutils, Comparison, Update, topologicalsort, UnitFirebirdServices, 
-trunksqlscript, turbocommon;
+  trunksqlscript, turbocommon, sqldblib;
 
 const
   Major = 1;
   Minor = 1;
-  Release = 91;
+  Release = 92;
 
   VersionDate = '2010 - June 2014';
 {$IFDEF Unix}
 {$DEFINE extdecl:=cdecl}
-    fbclib = 'libfbclient.' + sharedsuffix;
+    fbclib = 'libfbclient.' + sharedsuffix + '.2';
 {$ENDIF}
 {$IFDEF Windows}
   {$DEFINE extdecl:=stdcall}
@@ -48,8 +48,18 @@ var
   SAbout: TfmAbout;
   ErrorMessage: string;
   IBaseLibraryHandle : TLibHandle;
+  SLib: TSQLDBLibraryLoader;
 begin
   Application.Initialize;
+
+  // Load library using SQLDBLibraryLoader in Linux
+  {$IFDEF UNIX}
+  SLib:= TSQLDBLibraryLoader.Create(nil);
+  SLib.ConnectionType:= 'Firebird';
+  SLib.LibraryName:= 'libfbclient.so.2';
+  SLib.Enabled:= True;
+  {$ENDIF}
+
   {$IFDEF DEBUG}
   // Requires the build mode to set -dDEBUG in Project Options/Other and
   // defining -gh/heaptrace on

二進制
TurboBird.res


+ 9 - 9
main.lfm

@@ -5,7 +5,7 @@ object fmMain: TfmMain
   Width = 1024
   ActiveControl = tvMain
   Caption = 'TurboBird Admin for FireBird'
-  ClientHeight = 621
+  ClientHeight = 617
   ClientWidth = 1024
   Color = clWhite
   Font.Name = 'Sans'
@@ -15,10 +15,10 @@ object fmMain: TfmMain
   OnCreate = FormCreate
   OnDestroy = FormDestroy
   Position = poScreenCenter
-  LCLVersion = '1.2.2.0'
+  LCLVersion = '1.2.4.0'
   object tvMain: TTreeView
     Left = 0
-    Height = 601
+    Height = 596
     Top = 0
     Width = 360
     Align = alLeft
@@ -38,14 +38,14 @@ object fmMain: TfmMain
   end
   object Splitter1: TSplitter
     Left = 360
-    Height = 601
+    Height = 596
     Top = 0
     Width = 14
     Beveled = True
   end
   object PageControl1: TPageControl
     Left = 377
-    Height = 594
+    Height = 589
     Top = 3
     Width = 644
     ActivePage = TabSheet1
@@ -65,8 +65,8 @@ object fmMain: TfmMain
     object TabSheet1: TTabSheet
       BorderWidth = 1
       Caption = 'Main'
-      ClientHeight = 563
-      ClientWidth = 636
+      ClientHeight = 559
+      ClientWidth = 640
       Font.Color = clNavy
       Font.Name = 'Arial'
       ParentFont = False
@@ -506,8 +506,8 @@ object fmMain: TfmMain
   end
   object StatusBar1: TStatusBar
     Left = 0
-    Height = 20
-    Top = 601
+    Height = 21
+    Top = 596
     Width = 1024
     Panels = <    
       item

+ 11 - 11
main.lrs

@@ -3,11 +3,11 @@
 LazarusResources.Add('TfmMain','FORMDATA',[
   'TPF0'#7'TfmMain'#6'fmMain'#4'Left'#3#244#0#6'Height'#3#128#2#3'Top'#3#139#0#5
   +'Width'#3#0#4#13'ActiveControl'#7#6'tvMain'#7'Caption'#6#28'TurboBird Admin '
-  +'for FireBird'#12'ClientHeight'#3'm'#2#11'ClientWidth'#3#0#4#5'Color'#7#7'cl'
+  +'for FireBird'#12'ClientHeight'#3'i'#2#11'ClientWidth'#3#0#4#5'Color'#7#7'cl'
   +'White'#9'Font.Name'#6#4'Sans'#4'Menu'#7#9'MainMenu1'#10'OnActivate'#7#12'Fo'
   +'rmActivate'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9'OnDest'
   +'roy'#7#11'FormDestroy'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#7
-  +'1.2.2.0'#0#9'TTreeView'#6'tvMain'#4'Left'#2#0#6'Height'#3'Y'#2#3'Top'#2#0#5
+  +'1.2.4.0'#0#9'TTreeView'#6'tvMain'#4'Left'#2#0#6'Height'#3'T'#2#3'Top'#2#0#5
   +'Width'#3'h'#1#5'Align'#7#6'alLeft'#15'BackgroundColor'#7#7'clWhite'#5'Color'
   +#7#7'clCream'#15'ExpandSignColor'#7#8'clMaroon'#13'HideSelection'#8#6'Images'
   +#7#10'ImageList1'#6'Indent'#2#25#8'ReadOnly'#9#16'RightClickSelect'#9#9'Show'
@@ -15,20 +15,20 @@ LazarusResources.Add('TfmMain','FORMDATA',[
   +#7#14'tvMainExpanded'#7'Options'#11#17'tvoAutoItemHeight'#21'tvoKeepCollapse'
   +'dNodes'#11'tvoReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#11'tvoSh'
   +'owRoot'#11'tvoToolTips'#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3'h'#1#6'He'
-  +'ight'#3'Y'#2#3'Top'#2#0#5'Width'#2#14#7'Beveled'#9#0#0#12'TPageControl'#12
-  +'PageControl1'#4'Left'#3'y'#1#6'Height'#3'R'#2#3'Top'#2#3#5'Width'#3#132#2#10
+  +'ight'#3'T'#2#3'Top'#2#0#5'Width'#2#14#7'Beveled'#9#0#0#12'TPageControl'#12
+  +'PageControl1'#4'Left'#3'y'#1#6'Height'#3'M'#2#3'Top'#2#3#5'Width'#3#132#2#10
   +'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#18'BorderSpacing.Left'#2#1
   +#17'BorderSpacing.Top'#2#1#19'BorderSpacing.Right'#2#1#20'BorderSpacing.Bott'
   +'om'#2#2#20'BorderSpacing.Around'#2#2#25'BorderSpacing.InnerBorder'#2#1#9'Fo'
   +'nt.Name'#6#4'Sans'#10'ParentFont'#8#8'TabIndex'#2#0#8'TabOrder'#2#2#17'OnCl'
   +'oseTabClicked'#7#27'PageControl1CloseTabClicked'#7'Options'#11#20'nboHidePa'
   +'geListPopup'#0#0#9'TTabSheet'#9'TabSheet1'#11'BorderWidth'#2#1#7'Caption'#6
-  +#4'Main'#12'ClientHeight'#3'3'#2#11'ClientWidth'#3'|'#2#10'Font.Color'#7#6'c'
-  +'lNavy'#9'Font.Name'#6#5'Arial'#10'ParentFont'#8#0#7'TBitBtn'#11'bbRestoreDB'
-  +#4'Left'#2#3#6'Height'#2']'#3'Top'#3#216#0#5'Width'#3#208#0#7'Caption'#6#16
-  +'Restore Database'#5'Color'#7#7'clCream'#9'Font.Name'#6#4'Sans'#10'Glyph.Dat'
-  +'a'#10':'#16#0#0'6'#16#0#0'BM6'#16#0#0#0#0#0#0'6'#0#0#0'('#0#0#0' '#0#0#0' '
-  +#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+  +#4'Main'#12'ClientHeight'#3'/'#2#11'ClientWidth'#3#128#2#10'Font.Color'#7#6
+  +'clNavy'#9'Font.Name'#6#5'Arial'#10'ParentFont'#8#0#7'TBitBtn'#11'bbRestoreD'
+  +'B'#4'Left'#2#3#6'Height'#2']'#3'Top'#3#216#0#5'Width'#3#208#0#7'Caption'#6
+  +#16'Restore Database'#5'Color'#7#7'clCream'#9'Font.Name'#6#4'Sans'#10'Glyph.'
+  +'Data'#10':'#16#0#0'6'#16#0#0'BM6'#16#0#0#0#0#0#0'6'#0#0#0'('#0#0#0' '#0#0#0
+  +' '#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
   +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
   +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#1'UUU'#3'@``'
   +#8'NNN'#13'UUU'#18'QQQ'#22'YYY'#23'MYY'#20'UUU'#15'MfM'#10'fff'#5#128#128#128
@@ -593,7 +593,7 @@ LazarusResources.Add('TfmMain','FORMDATA',[
   +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
   +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
   +#255#255#0#7'OnClick'#7#15'mnCreateDBClick'#10'ParentFont'#8#8'TabOrder'#2#2
-  +#0#0#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2#0#6'Height'#2#20#3'Top'#3'Y'
+  +#0#0#0#0#10'TStatusBar'#10'StatusBar1'#4'Left'#2#0#6'Height'#2#21#3'Top'#3'T'
   +#2#5'Width'#3#0#4#6'Panels'#14#1#5'Width'#3#250#0#0#1#5'Width'#3#200#0#0#0#11
   +'SimplePanel'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#2'?'#3'top'#2'q'#0#9'T'
   +'MenuItem'#9'MenuItem1'#7'Caption'#6#5'&File'#0#9'TMenuItem'#10'mnCreateDB'#7

+ 2 - 2
main.pas

@@ -5,8 +5,8 @@ unit main;
 interface
 
 uses
-  Classes, SysUtils, IBConnection, sqldb, memds, FileUtil, LResources, Forms,
-  Controls, Graphics, Dialogs, Menus, ComCtrls, Reg, QueryWindow, Grids,
+  Classes, SysUtils, IBConnection, sqldb, sqldblib, memds, FileUtil, LResources,
+  Forms, Controls, Graphics, Dialogs, Menus, ComCtrls, Reg, QueryWindow, Grids,
   ExtCtrls, Buttons, StdCtrls, TableManage, dbugintf, turbocommon;
 
 {$i turbocommon.inc}

+ 11 - 2
querywindow.pas

@@ -503,8 +503,11 @@ procedure TfmQueryWindow.RemovePreviousResultTabs;
 var
   i: Integer;
 begin
-  for i:= 0 to OutputTabsList.Count - 1 do
+  for i:= OutputTabsList.Count - 1 downto 0 do
+  begin
     OutputTabsList.Objects[i].Free;
+    OutputTabsList.Delete(i);
+  end;
 end;
 
 procedure TfmQueryWindow.GetLogEvent(Sender: TSQLConnection;
@@ -906,7 +909,12 @@ procedure TfmQueryWindow.Init(dbIndex: Integer);
 begin
   FDBIndex:= dbIndex;
   FRegRec:= fmMain.RegisteredDatabases[dbIndex].RegRec;
-  OutputTabsList:= TStringList.Create;
+
+  // Remove old tabs in case of opening the same QueryWindow
+  if Assigned(OutputTabsList) then
+    RemovePreviousResultTabs
+  else
+    OutputTabsList:= TStringList.Create;
 
   // Set instances of FIBConnection and SQLTransaction for the current Query Window
   SetTransactionIsolation(FSQLTrans.Params);
@@ -1650,6 +1658,7 @@ end;
 
 procedure TfmQueryWindow.FormCreate(Sender: TObject);
 begin
+  OutputTabsList:= nil;
   {$IFNDEF DEBUG}
   // Do not log to debug server if built as release instead of debug
   SetDebuggingEnabled(false);