diff --git a/.gitattributes b/.gitattributes index 41e1c3c..dce8e29 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ # Ignore modified PostgreSQL sources -pg_dump_dll/** linguist-vendored +Source/pg_dump_dll/** linguist-vendored diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.cfg b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg similarity index 91% rename from TPSQLSSHDatabase/DEMO/SSHDemo.cfg rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg index 052bfee..f86f30f 100644 --- a/TPSQLSSHDatabase/DEMO/SSHDemo.cfg +++ b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.cfg @@ -1,40 +1,40 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --GD --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi7\Projects\Bpl" --LN"c:\program files\borland\delphi7\Projects\Bpl" --DEUREKALOG;EUREKALOG_VER6 --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-GD +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-DEUREKALOG;EUREKALOG_VER6 +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.dpr b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr similarity index 93% rename from TPSQLSSHDatabase/DEMO/SSHDemo.dpr rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr index 7f3df7b..f5f4d83 100644 --- a/TPSQLSSHDatabase/DEMO/SSHDemo.dpr +++ b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.dpr @@ -1,15 +1,15 @@ -program SSHDemo; - -uses - ExceptionLog, - Forms, - fuMain in 'fuMain.pas' {fmMain}, - fuLogin in 'fuLogin.pas' {fmLogin}; - -{$R *.res} - -begin - Application.Initialize; - Application.CreateForm(TfmMain, fmMain); - Application.Run; -end. +program SSHDemo; + +uses + ExceptionLog, + Forms, + fuMain in 'fuMain.pas' {fmMain}, + fuLogin in 'fuLogin.pas' {fmLogin}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TfmMain, fmMain); + Application.Run; +end. diff --git a/TPSQLSSHDatabase/DEMO/SSHDemo.res b/Source/TPSQLSSHDatabase/DEMO/SSHDemo.res similarity index 100% rename from TPSQLSSHDatabase/DEMO/SSHDemo.res rename to Source/TPSQLSSHDatabase/DEMO/SSHDemo.res diff --git a/TPSQLSSHDatabase/DEMO/fuLogin.dfm b/Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm similarity index 95% rename from TPSQLSSHDatabase/DEMO/fuLogin.dfm rename to Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm index a373272..99745d7 100644 --- a/TPSQLSSHDatabase/DEMO/fuLogin.dfm +++ b/Source/TPSQLSSHDatabase/DEMO/fuLogin.dfm @@ -1,368 +1,368 @@ -object fmLogin: TfmLogin - Left = 392 - Top = 286 - BorderStyle = bsDialog - Caption = 'mySQL Logon' - ClientHeight = 349 - ClientWidth = 384 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poMainFormCenter - DesignSize = ( - 384 - 349) - PixelsPerInch = 96 - TextHeight = 13 - object Bevel1: TBevel - Left = -1 - Top = 312 - Width = 385 - Height = 2 - Shape = bsTopLine - end - object pcProperties: TPageControl - Left = 8 - Top = 8 - Width = 374 - Height = 297 - ActivePage = tsSSH - TabOrder = 0 - object tsConnection: TTabSheet - Caption = 'Connection' - object laHost: TLabel - Left = 12 - Top = 12 - Width = 33 - Height = 13 - AutoSize = False - Caption = '&Host' - FocusControl = edHost - Transparent = True - Layout = tlCenter - end - object laUser: TLabel - Left = 12 - Top = 66 - Width = 33 - Height = 13 - AutoSize = False - Caption = '&User' - FocusControl = edUser - Transparent = True - Layout = tlCenter - end - object laPassword: TLabel - Left = 231 - Top = 66 - Width = 46 - Height = 13 - AutoSize = False - Caption = 'Pass&word' - FocusControl = edPassword - Transparent = True - Layout = tlCenter - end - object laPort: TLabel - Left = 231 - Top = 12 - Width = 33 - Height = 13 - AutoSize = False - Caption = '&Port' - FocusControl = edPort - Transparent = True - Layout = tlCenter - end - object laTimeOut: TLabel - Left = 12 - Top = 149 - Width = 64 - Height = 13 - Caption = '&Timeout (sec)' - FocusControl = edTimeOut - Transparent = True - end - object laDBName: TLabel - Left = 12 - Top = 176 - Width = 69 - Height = 21 - AutoSize = False - Caption = '&Database' - Transparent = True - Layout = tlCenter - end - object bvOptions: TBevel - Left = 8 - Top = 136 - Width = 354 - Height = 9 - Shape = bsTopLine - end - object edHost: TEdit - Left = 12 - Top = 33 - Width = 209 - Height = 21 - TabOrder = 0 - Text = 'localhost' - end - object edUser: TEdit - Left = 12 - Top = 87 - Width = 209 - Height = 21 - TabOrder = 2 - Text = 'root' - end - object edShowPassword: TCheckBox - Left = 229 - Top = 112 - Width = 129 - Height = 21 - Caption = '&Show password chars' - TabOrder = 4 - OnClick = edShowPasswordClick - end - object edPassword: TEdit - Left = 231 - Top = 87 - Width = 129 - Height = 21 - PasswordChar = '*' - TabOrder = 3 - end - object edPort: TSpinEdit - Left = 231 - Top = 33 - Width = 129 - Height = 22 - MaxValue = 9999 - MinValue = 0 - TabOrder = 1 - Value = 3306 - end - object edTimeOut: TSpinEdit - Left = 100 - Top = 146 - Width = 85 - Height = 22 - MaxValue = 120 - MinValue = 1 - TabOrder = 5 - Value = 5 - end - object edDBName: TEdit - Left = 88 - Top = 176 - Width = 273 - Height = 21 - TabOrder = 6 - end - end - object tsSSH: TTabSheet - Caption = 'SSH' - object laSSHHost: TLabel - Left = 12 - Top = 44 - Width = 61 - Height = 13 - AutoSize = False - Caption = 'SSH &Host' - Enabled = False - Transparent = True - Layout = tlCenter - end - object laSSHUser: TLabel - Left = 12 - Top = 98 - Width = 93 - Height = 13 - AutoSize = False - Caption = 'SSH &User' - Enabled = False - FocusControl = edSSHUser - Transparent = True - Layout = tlCenter - end - object laSSHPassword: TLabel - Left = 231 - Top = 98 - Width = 114 - Height = 13 - AutoSize = False - Caption = 'SSH Pass&word' - Enabled = False - FocusControl = edSSHPassword - Transparent = True - Layout = tlCenter - end - object laSSHPort: TLabel - Left = 231 - Top = 44 - Width = 74 - Height = 13 - AutoSize = False - Caption = 'SSH &Port' - Enabled = False - FocusControl = edSSHPort - Transparent = True - Layout = tlCenter - end - object laSSHTimeout: TLabel - Left = 15 - Top = 225 - Width = 89 - Height = 13 - Caption = 'SSH &Timeout (sec)' - Enabled = False - FocusControl = edSSHTimeout - Transparent = True - end - object laSSHCompression: TLabel - Left = 24 - Top = 194 - Width = 94 - Height = 21 - AutoSize = False - Caption = 'Compresssion Level' - Enabled = False - Transparent = True - Layout = tlCenter - end - object edSSHUser: TEdit - Left = 12 - Top = 119 - Width = 209 - Height = 21 - Enabled = False - TabOrder = 2 - end - object edSSHPassword: TEdit - Left = 231 - Top = 119 - Width = 129 - Height = 21 - Enabled = False - PasswordChar = '*' - TabOrder = 3 - end - object edSSHPort: TSpinEdit - Left = 231 - Top = 65 - Width = 129 - Height = 22 - Enabled = False - MaxValue = 1000 - MinValue = 0 - TabOrder = 1 - Value = 22 - end - object edShowSSHPassword: TCheckBox - Left = 229 - Top = 144 - Width = 129 - Height = 21 - Caption = '&Show password chars' - Enabled = False - TabOrder = 4 - OnClick = edShowSSHPasswordClick - end - object edSSHTimeout: TSpinEdit - Left = 136 - Top = 221 - Width = 85 - Height = 22 - Enabled = False - MaxValue = 512 - MinValue = 1 - TabOrder = 7 - Value = 120 - end - object chEnableSSH: TCheckBox - Left = 12 - Top = 12 - Width = 233 - Height = 21 - Caption = '&Enable SSH Tunneling' - TabOrder = 0 - OnClick = chEnableSSHClick - end - object chSSHCompression: TCheckBox - Left = 12 - Top = 173 - Width = 205 - Height = 21 - Caption = 'Use Compression' - Enabled = False - TabOrder = 5 - OnClick = chSSHCompressionClick - end - object edSSHCompression: TComboBox - Left = 136 - Top = 194 - Width = 85 - Height = 21 - Enabled = False - ItemHeight = 13 - TabOrder = 6 - Text = '6' - Items.Strings = ( - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9') - end - object edSSHHost: TEdit - Left = 12 - Top = 65 - Width = 209 - Height = 21 - Enabled = False - TabOrder = 8 - Text = 'localhost' - end - end - end - object buCancel: TButton - Left = 304 - Top = 319 - Width = 75 - Height = 25 - HelpContext = 1001 - Anchors = [akRight, akBottom] - Cancel = True - Caption = '&Cancel' - ModalResult = 2 - TabOrder = 1 - end - object buOk: TButton - Left = 224 - Top = 319 - Width = 75 - Height = 25 - Action = aReady - Anchors = [akRight, akBottom] - Default = True - TabOrder = 2 - end - object alProfileProps: TActionList - Left = 8 - Top = 320 - object aReady: TAction - Caption = '&OK' - OnExecute = aReadyExecute - OnUpdate = aReadyUpdate - end - end -end +object fmLogin: TfmLogin + Left = 392 + Top = 286 + BorderStyle = bsDialog + Caption = 'mySQL Logon' + ClientHeight = 349 + ClientWidth = 384 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + DesignSize = ( + 384 + 349) + PixelsPerInch = 96 + TextHeight = 13 + object Bevel1: TBevel + Left = -1 + Top = 312 + Width = 385 + Height = 2 + Shape = bsTopLine + end + object pcProperties: TPageControl + Left = 8 + Top = 8 + Width = 374 + Height = 297 + ActivePage = tsSSH + TabOrder = 0 + object tsConnection: TTabSheet + Caption = 'Connection' + object laHost: TLabel + Left = 12 + Top = 12 + Width = 33 + Height = 13 + AutoSize = False + Caption = '&Host' + FocusControl = edHost + Transparent = True + Layout = tlCenter + end + object laUser: TLabel + Left = 12 + Top = 66 + Width = 33 + Height = 13 + AutoSize = False + Caption = '&User' + FocusControl = edUser + Transparent = True + Layout = tlCenter + end + object laPassword: TLabel + Left = 231 + Top = 66 + Width = 46 + Height = 13 + AutoSize = False + Caption = 'Pass&word' + FocusControl = edPassword + Transparent = True + Layout = tlCenter + end + object laPort: TLabel + Left = 231 + Top = 12 + Width = 33 + Height = 13 + AutoSize = False + Caption = '&Port' + FocusControl = edPort + Transparent = True + Layout = tlCenter + end + object laTimeOut: TLabel + Left = 12 + Top = 149 + Width = 64 + Height = 13 + Caption = '&Timeout (sec)' + FocusControl = edTimeOut + Transparent = True + end + object laDBName: TLabel + Left = 12 + Top = 176 + Width = 69 + Height = 21 + AutoSize = False + Caption = '&Database' + Transparent = True + Layout = tlCenter + end + object bvOptions: TBevel + Left = 8 + Top = 136 + Width = 354 + Height = 9 + Shape = bsTopLine + end + object edHost: TEdit + Left = 12 + Top = 33 + Width = 209 + Height = 21 + TabOrder = 0 + Text = 'localhost' + end + object edUser: TEdit + Left = 12 + Top = 87 + Width = 209 + Height = 21 + TabOrder = 2 + Text = 'root' + end + object edShowPassword: TCheckBox + Left = 229 + Top = 112 + Width = 129 + Height = 21 + Caption = '&Show password chars' + TabOrder = 4 + OnClick = edShowPasswordClick + end + object edPassword: TEdit + Left = 231 + Top = 87 + Width = 129 + Height = 21 + PasswordChar = '*' + TabOrder = 3 + end + object edPort: TSpinEdit + Left = 231 + Top = 33 + Width = 129 + Height = 22 + MaxValue = 9999 + MinValue = 0 + TabOrder = 1 + Value = 3306 + end + object edTimeOut: TSpinEdit + Left = 100 + Top = 146 + Width = 85 + Height = 22 + MaxValue = 120 + MinValue = 1 + TabOrder = 5 + Value = 5 + end + object edDBName: TEdit + Left = 88 + Top = 176 + Width = 273 + Height = 21 + TabOrder = 6 + end + end + object tsSSH: TTabSheet + Caption = 'SSH' + object laSSHHost: TLabel + Left = 12 + Top = 44 + Width = 61 + Height = 13 + AutoSize = False + Caption = 'SSH &Host' + Enabled = False + Transparent = True + Layout = tlCenter + end + object laSSHUser: TLabel + Left = 12 + Top = 98 + Width = 93 + Height = 13 + AutoSize = False + Caption = 'SSH &User' + Enabled = False + FocusControl = edSSHUser + Transparent = True + Layout = tlCenter + end + object laSSHPassword: TLabel + Left = 231 + Top = 98 + Width = 114 + Height = 13 + AutoSize = False + Caption = 'SSH Pass&word' + Enabled = False + FocusControl = edSSHPassword + Transparent = True + Layout = tlCenter + end + object laSSHPort: TLabel + Left = 231 + Top = 44 + Width = 74 + Height = 13 + AutoSize = False + Caption = 'SSH &Port' + Enabled = False + FocusControl = edSSHPort + Transparent = True + Layout = tlCenter + end + object laSSHTimeout: TLabel + Left = 15 + Top = 225 + Width = 89 + Height = 13 + Caption = 'SSH &Timeout (sec)' + Enabled = False + FocusControl = edSSHTimeout + Transparent = True + end + object laSSHCompression: TLabel + Left = 24 + Top = 194 + Width = 94 + Height = 21 + AutoSize = False + Caption = 'Compresssion Level' + Enabled = False + Transparent = True + Layout = tlCenter + end + object edSSHUser: TEdit + Left = 12 + Top = 119 + Width = 209 + Height = 21 + Enabled = False + TabOrder = 2 + end + object edSSHPassword: TEdit + Left = 231 + Top = 119 + Width = 129 + Height = 21 + Enabled = False + PasswordChar = '*' + TabOrder = 3 + end + object edSSHPort: TSpinEdit + Left = 231 + Top = 65 + Width = 129 + Height = 22 + Enabled = False + MaxValue = 1000 + MinValue = 0 + TabOrder = 1 + Value = 22 + end + object edShowSSHPassword: TCheckBox + Left = 229 + Top = 144 + Width = 129 + Height = 21 + Caption = '&Show password chars' + Enabled = False + TabOrder = 4 + OnClick = edShowSSHPasswordClick + end + object edSSHTimeout: TSpinEdit + Left = 136 + Top = 221 + Width = 85 + Height = 22 + Enabled = False + MaxValue = 512 + MinValue = 1 + TabOrder = 7 + Value = 120 + end + object chEnableSSH: TCheckBox + Left = 12 + Top = 12 + Width = 233 + Height = 21 + Caption = '&Enable SSH Tunneling' + TabOrder = 0 + OnClick = chEnableSSHClick + end + object chSSHCompression: TCheckBox + Left = 12 + Top = 173 + Width = 205 + Height = 21 + Caption = 'Use Compression' + Enabled = False + TabOrder = 5 + OnClick = chSSHCompressionClick + end + object edSSHCompression: TComboBox + Left = 136 + Top = 194 + Width = 85 + Height = 21 + Enabled = False + ItemHeight = 13 + TabOrder = 6 + Text = '6' + Items.Strings = ( + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9') + end + object edSSHHost: TEdit + Left = 12 + Top = 65 + Width = 209 + Height = 21 + Enabled = False + TabOrder = 8 + Text = 'localhost' + end + end + end + object buCancel: TButton + Left = 304 + Top = 319 + Width = 75 + Height = 25 + HelpContext = 1001 + Anchors = [akRight, akBottom] + Cancel = True + Caption = '&Cancel' + ModalResult = 2 + TabOrder = 1 + end + object buOk: TButton + Left = 224 + Top = 319 + Width = 75 + Height = 25 + Action = aReady + Anchors = [akRight, akBottom] + Default = True + TabOrder = 2 + end + object alProfileProps: TActionList + Left = 8 + Top = 320 + object aReady: TAction + Caption = '&OK' + OnExecute = aReadyExecute + OnUpdate = aReadyUpdate + end + end +end diff --git a/TPSQLSSHDatabase/DEMO/fuLogin.pas b/Source/TPSQLSSHDatabase/DEMO/fuLogin.pas similarity index 96% rename from TPSQLSSHDatabase/DEMO/fuLogin.pas rename to Source/TPSQLSSHDatabase/DEMO/fuLogin.pas index f5575b5..8330202 100644 --- a/TPSQLSSHDatabase/DEMO/fuLogin.pas +++ b/Source/TPSQLSSHDatabase/DEMO/fuLogin.pas @@ -1,203 +1,203 @@ -unit fuLogin; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, ActnList, ExtCtrls, ComCtrls, Spin, PgSSHDatabase, StdCtrls; - -type - TfmLogin = class(TForm) - pcProperties: TPageControl; - tsConnection: TTabSheet; - laHost: TLabel; - laUser: TLabel; - laPassword: TLabel; - laPort: TLabel; - laTimeOut: TLabel; - laDBName: TLabel; - bvOptions: TBevel; - edHost: TEdit; - edUser: TEdit; - edShowPassword: TCheckBox; - edPassword: TEdit; - edPort: TSpinEdit; - edTimeOut: TSpinEdit; - tsSSH: TTabSheet; - laSSHHost: TLabel; - laSSHUser: TLabel; - laSSHPassword: TLabel; - laSSHPort: TLabel; - laSSHTimeout: TLabel; - laSSHCompression: TLabel; - edSSHUser: TEdit; - edSSHPassword: TEdit; - edSSHPort: TSpinEdit; - edShowSSHPassword: TCheckBox; - edSSHTimeout: TSpinEdit; - chEnableSSH: TCheckBox; - chSSHCompression: TCheckBox; - edSSHCompression: TComboBox; - edSSHHost: TEdit; - buCancel: TButton; - buOk: TButton; - Bevel1: TBevel; - alProfileProps: TActionList; - aReady: TAction; - edDBName: TEdit; - procedure aReadyUpdate(Sender: TObject); - procedure aReadyExecute(Sender: TObject); - procedure edShowPasswordClick(Sender: TObject); - procedure edShowSSHPasswordClick(Sender: TObject); - procedure chEnableSSHClick(Sender: TObject); - procedure chSSHCompressionClick(Sender: TObject); - private - { Private declarations } - Database: TPgSSHDatabase; - function Edit: Boolean; - public - { Public declarations } - procedure GetDatabaseProperty(Db: TPgSSHDatabase); - procedure SetDatabaseProperty(Db: TPgSSHDatabase); - end; - -function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean; -procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean; - ForbiddenCtrls: TStrings = nil); - - -var - fmLogin: TfmLogin; - -implementation - -{$R *.dfm} - -function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean; -begin - with TfmLogin.Create(Application) do - try - Database := ADatabase; - Result := Edit; - finally - Free; - end; -end; - -function TfmLogin.Edit: Boolean; -begin - GetDatabaseProperty(Database); - Result := False; - if ShowModal = mrOk then - begin - SetDatabaseProperty(Database); - Result := True; - end; -end; - -procedure TfmLogin.GetDatabaseProperty(Db: TPgSSHDatabase); -begin - //Standard - edDBName.Text := DB.DatabaseName; - edUser.Text := db.UserName; - edPassword.Text:= db.UserPassword; - edHost.Text := Db.Host; - edPort.Value := Db.Port; - edTimeOut.Value:= DB.ConnectionTimeout; - //SSH - chEnableSSH.Checked := DB.SSHEnabled; - edSSHHost.Text := DB.SSHHost; - edSSHPort.Value := DB.SSHPort; - edSSHUser.Text := DB.SSHLogin; - edSSHPassword.Text := DB.SSHPassword; - chSSHCompression.Checked := DB.SSHUseCompression; - edSSHCompression.Text := IntToStr(DB.SSHCompressionLevel); - edSSHTimeout.Value := DB.SSHTimeout; -end; - -procedure TfmLogin.SetDatabaseProperty(Db: TPgSSHDatabase); -begin - //Standard - DB.DatabaseName := edDBName.Text; - db.UserName := edUser.Text; - db.UserPassword := edPassword.Text; - Db.Host := edHost.Text; - Db.Port := edPort.Value; - DB.ConnectionTimeout := edTimeOut.Value; - //SSH - DB.SSHEnabled := chEnableSSH.Checked; - DB.SSHHost := edSSHHost.Text; - DB.SSHPort := edSSHPort.Value; - DB.SSHLogin := edSSHUser.Text; - DB.SSHPassword:= edSSHPassword.Text; - DB.SSHUseCompression := chSSHCompression.Checked; - DB.SSHCompressionLevel := StrtoInt(edSSHCompression.Text); - DB.SSHTimeout := edSSHTimeout.Value; -end; - -procedure TfmLogin.aReadyUpdate(Sender: TObject); -begin - (Sender as TAction).Enabled := (Trim(edHost.Text) <> EmptyStr) and (Trim(edUser.Text) <> EmptyStr) and (Trim(edDBName.Text) <> EmptyStr); -end; - -procedure TfmLogin.aReadyExecute(Sender: TObject); -begin - ModalResult := mrOk; -end; - -procedure TfmLogin.edShowPasswordClick(Sender: TObject); -begin - if edShowPassword.Checked then - edPassword.PasswordChar := #0 else - edPassword.PasswordChar := '*'; -end; - -procedure TfmLogin.edShowSSHPasswordClick(Sender: TObject); -begin - if edShowSSHPassword.Checked then - edSSHPassword.PasswordChar := #0 else - edSShPassword.PasswordChar := '*'; -end; - -procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean; - ForbiddenCtrls: TStrings); -var - i: integer; -begin - if not Assigned(ParentControl) then Exit; - for i := 0 to ParentControl.ControlCount - 1 do begin - if Assigned(ForbiddenCtrls) and - (ForbiddenCtrls.IndexOf(ParentControl.Controls[i].Name) > -1) then Continue; - if ParentControl.Controls[i] is TWinControl then - SetControlGroupEnabled(TWinControl(ParentControl.Controls[i]), Value) - else ParentControl.Controls[i].Enabled := Value; - end; - ParentControl.Enabled := Value; -end; - -procedure TfmLogin.chEnableSSHClick(Sender: TObject); -var - AStrings: TStrings; -begin - AStrings := TStringList.Create(); - try - AStrings.Add(tsSSH.Name); - AStrings.Add(chEnableSSH.Name); - if chEnableSSH.Checked and (not chSSHCompression.Checked) then - begin - AStrings.Add(laSSHCompression.Name); - AStrings.Add(edSSHCompression.Name); - end; - SetControlGroupEnabled(tsSSH, chEnableSSH.Checked, AStrings); - finally - AStrings.Free(); - end; -end; - -procedure TfmLogin.chSSHCompressionClick(Sender: TObject); -begin - laSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked; - edSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked; -end; - -end. +unit fuLogin; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ActnList, ExtCtrls, ComCtrls, Spin, PgSSHDatabase, StdCtrls; + +type + TfmLogin = class(TForm) + pcProperties: TPageControl; + tsConnection: TTabSheet; + laHost: TLabel; + laUser: TLabel; + laPassword: TLabel; + laPort: TLabel; + laTimeOut: TLabel; + laDBName: TLabel; + bvOptions: TBevel; + edHost: TEdit; + edUser: TEdit; + edShowPassword: TCheckBox; + edPassword: TEdit; + edPort: TSpinEdit; + edTimeOut: TSpinEdit; + tsSSH: TTabSheet; + laSSHHost: TLabel; + laSSHUser: TLabel; + laSSHPassword: TLabel; + laSSHPort: TLabel; + laSSHTimeout: TLabel; + laSSHCompression: TLabel; + edSSHUser: TEdit; + edSSHPassword: TEdit; + edSSHPort: TSpinEdit; + edShowSSHPassword: TCheckBox; + edSSHTimeout: TSpinEdit; + chEnableSSH: TCheckBox; + chSSHCompression: TCheckBox; + edSSHCompression: TComboBox; + edSSHHost: TEdit; + buCancel: TButton; + buOk: TButton; + Bevel1: TBevel; + alProfileProps: TActionList; + aReady: TAction; + edDBName: TEdit; + procedure aReadyUpdate(Sender: TObject); + procedure aReadyExecute(Sender: TObject); + procedure edShowPasswordClick(Sender: TObject); + procedure edShowSSHPasswordClick(Sender: TObject); + procedure chEnableSSHClick(Sender: TObject); + procedure chSSHCompressionClick(Sender: TObject); + private + { Private declarations } + Database: TPgSSHDatabase; + function Edit: Boolean; + public + { Public declarations } + procedure GetDatabaseProperty(Db: TPgSSHDatabase); + procedure SetDatabaseProperty(Db: TPgSSHDatabase); + end; + +function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean; +procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean; + ForbiddenCtrls: TStrings = nil); + + +var + fmLogin: TfmLogin; + +implementation + +{$R *.dfm} + +function ShowConnectDlg(ADatabase: TPgSSHDatabase): Boolean; +begin + with TfmLogin.Create(Application) do + try + Database := ADatabase; + Result := Edit; + finally + Free; + end; +end; + +function TfmLogin.Edit: Boolean; +begin + GetDatabaseProperty(Database); + Result := False; + if ShowModal = mrOk then + begin + SetDatabaseProperty(Database); + Result := True; + end; +end; + +procedure TfmLogin.GetDatabaseProperty(Db: TPgSSHDatabase); +begin + //Standard + edDBName.Text := DB.DatabaseName; + edUser.Text := db.UserName; + edPassword.Text:= db.UserPassword; + edHost.Text := Db.Host; + edPort.Value := Db.Port; + edTimeOut.Value:= DB.ConnectionTimeout; + //SSH + chEnableSSH.Checked := DB.SSHEnabled; + edSSHHost.Text := DB.SSHHost; + edSSHPort.Value := DB.SSHPort; + edSSHUser.Text := DB.SSHLogin; + edSSHPassword.Text := DB.SSHPassword; + chSSHCompression.Checked := DB.SSHUseCompression; + edSSHCompression.Text := IntToStr(DB.SSHCompressionLevel); + edSSHTimeout.Value := DB.SSHTimeout; +end; + +procedure TfmLogin.SetDatabaseProperty(Db: TPgSSHDatabase); +begin + //Standard + DB.DatabaseName := edDBName.Text; + db.UserName := edUser.Text; + db.UserPassword := edPassword.Text; + Db.Host := edHost.Text; + Db.Port := edPort.Value; + DB.ConnectionTimeout := edTimeOut.Value; + //SSH + DB.SSHEnabled := chEnableSSH.Checked; + DB.SSHHost := edSSHHost.Text; + DB.SSHPort := edSSHPort.Value; + DB.SSHLogin := edSSHUser.Text; + DB.SSHPassword:= edSSHPassword.Text; + DB.SSHUseCompression := chSSHCompression.Checked; + DB.SSHCompressionLevel := StrtoInt(edSSHCompression.Text); + DB.SSHTimeout := edSSHTimeout.Value; +end; + +procedure TfmLogin.aReadyUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Trim(edHost.Text) <> EmptyStr) and (Trim(edUser.Text) <> EmptyStr) and (Trim(edDBName.Text) <> EmptyStr); +end; + +procedure TfmLogin.aReadyExecute(Sender: TObject); +begin + ModalResult := mrOk; +end; + +procedure TfmLogin.edShowPasswordClick(Sender: TObject); +begin + if edShowPassword.Checked then + edPassword.PasswordChar := #0 else + edPassword.PasswordChar := '*'; +end; + +procedure TfmLogin.edShowSSHPasswordClick(Sender: TObject); +begin + if edShowSSHPassword.Checked then + edSSHPassword.PasswordChar := #0 else + edSShPassword.PasswordChar := '*'; +end; + +procedure SetControlGroupEnabled(ParentControl: TWinControl; const Value: boolean; + ForbiddenCtrls: TStrings); +var + i: integer; +begin + if not Assigned(ParentControl) then Exit; + for i := 0 to ParentControl.ControlCount - 1 do begin + if Assigned(ForbiddenCtrls) and + (ForbiddenCtrls.IndexOf(ParentControl.Controls[i].Name) > -1) then Continue; + if ParentControl.Controls[i] is TWinControl then + SetControlGroupEnabled(TWinControl(ParentControl.Controls[i]), Value) + else ParentControl.Controls[i].Enabled := Value; + end; + ParentControl.Enabled := Value; +end; + +procedure TfmLogin.chEnableSSHClick(Sender: TObject); +var + AStrings: TStrings; +begin + AStrings := TStringList.Create(); + try + AStrings.Add(tsSSH.Name); + AStrings.Add(chEnableSSH.Name); + if chEnableSSH.Checked and (not chSSHCompression.Checked) then + begin + AStrings.Add(laSSHCompression.Name); + AStrings.Add(edSSHCompression.Name); + end; + SetControlGroupEnabled(tsSSH, chEnableSSH.Checked, AStrings); + finally + AStrings.Free(); + end; +end; + +procedure TfmLogin.chSSHCompressionClick(Sender: TObject); +begin + laSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked; + edSSHCompression.Enabled := chEnableSSH.Checked and chSSHCompression.Checked; +end; + +end. diff --git a/TPSQLSSHDatabase/DEMO/fuMain.dfm b/Source/TPSQLSSHDatabase/DEMO/fuMain.dfm similarity index 95% rename from TPSQLSSHDatabase/DEMO/fuMain.dfm rename to Source/TPSQLSSHDatabase/DEMO/fuMain.dfm index b76235d..4a02d56 100644 --- a/TPSQLSSHDatabase/DEMO/fuMain.dfm +++ b/Source/TPSQLSSHDatabase/DEMO/fuMain.dfm @@ -1,125 +1,125 @@ -object fmMain: TfmMain - Left = 484 - Top = 299 - Width = 633 - Height = 434 - Caption = 'Main form' - Color = clBtnFace - Constraints.MinHeight = 434 - Constraints.MinWidth = 633 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - DesignSize = ( - 625 - 400) - PixelsPerInch = 96 - TextHeight = 13 - object Label1: TLabel - Left = 8 - Top = 8 - Width = 80 - Height = 13 - Caption = 'Database tables:' - end - object Label2: TLabel - Left = 192 - Top = 8 - Width = 51 - Height = 13 - Caption = 'Table data' - end - object lbTables: TListBox - Left = 8 - Top = 24 - Width = 177 - Height = 337 - Anchors = [akLeft, akTop, akBottom] - ItemHeight = 13 - TabOrder = 0 - OnClick = lbTablesClick - end - object dbgData: TDBGrid - Left = 192 - Top = 24 - Width = 425 - Height = 305 - Anchors = [akLeft, akTop, akRight, akBottom] - DataSource = DataSource1 - TabOrder = 1 - TitleFont.Charset = DEFAULT_CHARSET - TitleFont.Color = clWindowText - TitleFont.Height = -11 - TitleFont.Name = 'MS Sans Serif' - TitleFont.Style = [] - end - object dbnData: TDBNavigator - Left = 192 - Top = 336 - Width = 430 - Height = 25 - DataSource = DataSource1 - Anchors = [akLeft, akRight, akBottom] - Flat = True - TabOrder = 2 - end - object buConnect: TButton - Left = 8 - Top = 368 - Width = 75 - Height = 25 - Anchors = [akLeft, akBottom] - Caption = 'Connect' - TabOrder = 3 - OnClick = buConnectClick - end - object buDisconnect: TButton - Left = 88 - Top = 368 - Width = 75 - Height = 25 - Anchors = [akLeft, akBottom] - Caption = 'Disconnect' - Enabled = False - TabOrder = 4 - OnClick = buDisconnectClick - end - object buClose: TButton - Left = 544 - Top = 368 - Width = 75 - Height = 25 - Anchors = [akRight, akBottom] - Caption = 'Close' - TabOrder = 5 - OnClick = buCloseClick - end - object DataSource1: TDataSource - DataSet = PSQLT - Left = 256 - Top = 368 - end - object PgSSHDB: TPgSSHDatabase - Params.Strings = ( - 'Port=5432') - SSLMode = sslDisable - UseSSL = False - SSHPort = 0 - SSHTimeout = 120 - SSHUseCompression = False - SSHCompressionLevel = 6 - Left = 176 - Top = 368 - end - object PSQLT: TPSQLTable - Database = PgSSHDB - OIDAsInt = False - ByteaAsEscString = False - Left = 208 - Top = 368 - end -end +object fmMain: TfmMain + Left = 484 + Top = 299 + Width = 633 + Height = 434 + Caption = 'Main form' + Color = clBtnFace + Constraints.MinHeight = 434 + Constraints.MinWidth = 633 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + DesignSize = ( + 625 + 400) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 8 + Width = 80 + Height = 13 + Caption = 'Database tables:' + end + object Label2: TLabel + Left = 192 + Top = 8 + Width = 51 + Height = 13 + Caption = 'Table data' + end + object lbTables: TListBox + Left = 8 + Top = 24 + Width = 177 + Height = 337 + Anchors = [akLeft, akTop, akBottom] + ItemHeight = 13 + TabOrder = 0 + OnClick = lbTablesClick + end + object dbgData: TDBGrid + Left = 192 + Top = 24 + Width = 425 + Height = 305 + Anchors = [akLeft, akTop, akRight, akBottom] + DataSource = DataSource1 + TabOrder = 1 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end + object dbnData: TDBNavigator + Left = 192 + Top = 336 + Width = 430 + Height = 25 + DataSource = DataSource1 + Anchors = [akLeft, akRight, akBottom] + Flat = True + TabOrder = 2 + end + object buConnect: TButton + Left = 8 + Top = 368 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Connect' + TabOrder = 3 + OnClick = buConnectClick + end + object buDisconnect: TButton + Left = 88 + Top = 368 + Width = 75 + Height = 25 + Anchors = [akLeft, akBottom] + Caption = 'Disconnect' + Enabled = False + TabOrder = 4 + OnClick = buDisconnectClick + end + object buClose: TButton + Left = 544 + Top = 368 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = 'Close' + TabOrder = 5 + OnClick = buCloseClick + end + object DataSource1: TDataSource + DataSet = PSQLT + Left = 256 + Top = 368 + end + object PgSSHDB: TPgSSHDatabase + Params.Strings = ( + 'Port=5432') + SSLMode = sslDisable + UseSSL = False + SSHPort = 0 + SSHTimeout = 120 + SSHUseCompression = False + SSHCompressionLevel = 6 + Left = 176 + Top = 368 + end + object PSQLT: TPSQLTable + Database = PgSSHDB + OIDAsInt = False + ByteaAsEscString = False + Left = 208 + Top = 368 + end +end diff --git a/TPSQLSSHDatabase/DEMO/fuMain.pas b/Source/TPSQLSSHDatabase/DEMO/fuMain.pas similarity index 95% rename from TPSQLSSHDatabase/DEMO/fuMain.pas rename to Source/TPSQLSSHDatabase/DEMO/fuMain.pas index ccbfe37..f75bb96 100644 --- a/TPSQLSSHDatabase/DEMO/fuMain.pas +++ b/Source/TPSQLSSHDatabase/DEMO/fuMain.pas @@ -1,84 +1,84 @@ -unit fuMain; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, PSQLDbTables, - PgSSHDatabase; - -type - TfmMain = class(TForm) - lbTables: TListBox; - Label1: TLabel; - dbgData: TDBGrid; - dbnData: TDBNavigator; - Label2: TLabel; - buConnect: TButton; - buDisconnect: TButton; - buClose: TButton; - DataSource1: TDataSource; - PgSSHDB: TPgSSHDatabase; - PSQLT: TPSQLTable; - procedure buCloseClick(Sender: TObject); - procedure buConnectClick(Sender: TObject); - procedure buDisconnectClick(Sender: TObject); - procedure lbTablesClick(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - end; - -var - fmMain: TfmMain; - -implementation -uses fuLogin; - -{$R *.dfm} - -procedure TfmMain.buCloseClick(Sender: TObject); -begin - Close; -end; - - -procedure TfmMain.buConnectClick(Sender: TObject); -begin - if ShowConnectDlg(PgSSHDB) then - begin - try - PgSSHDB.Connected := true; - Screen.Cursor := crSQLWait; - PgSSHDB.GetTableNames('',False,lbTables.Items); - Screen.Cursor := crDefault; - buConnect.Enabled := False; - buDisconnect.Enabled := True; - except - on E:Exception do - begin - Application.MessageBox(PChar(E.Message), 'Connection fault', - MB_OK or MB_ICONINFORMATION); - end; - end; - end; -end; - -procedure TfmMain.buDisconnectClick(Sender: TObject); -begin - PgSSHDB.Close; - buConnect.Enabled := True; - buDisConnect.Enabled := False; - lbTables.Clear; -end; - -procedure TfmMain.lbTablesClick(Sender: TObject); -begin - if lbTables.ItemIndex = -1 then Exit; - PSQLT.Close; - PSQLT.TableName := lbTables.Items[lbTables.ItemIndex]; - PSQLT.Open; -end; - -end. +unit fuMain; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, PSQLDbTables, + PgSSHDatabase; + +type + TfmMain = class(TForm) + lbTables: TListBox; + Label1: TLabel; + dbgData: TDBGrid; + dbnData: TDBNavigator; + Label2: TLabel; + buConnect: TButton; + buDisconnect: TButton; + buClose: TButton; + DataSource1: TDataSource; + PgSSHDB: TPgSSHDatabase; + PSQLT: TPSQLTable; + procedure buCloseClick(Sender: TObject); + procedure buConnectClick(Sender: TObject); + procedure buDisconnectClick(Sender: TObject); + procedure lbTablesClick(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + fmMain: TfmMain; + +implementation +uses fuLogin; + +{$R *.dfm} + +procedure TfmMain.buCloseClick(Sender: TObject); +begin + Close; +end; + + +procedure TfmMain.buConnectClick(Sender: TObject); +begin + if ShowConnectDlg(PgSSHDB) then + begin + try + PgSSHDB.Connected := true; + Screen.Cursor := crSQLWait; + PgSSHDB.GetTableNames('',False,lbTables.Items); + Screen.Cursor := crDefault; + buConnect.Enabled := False; + buDisconnect.Enabled := True; + except + on E:Exception do + begin + Application.MessageBox(PChar(E.Message), 'Connection fault', + MB_OK or MB_ICONINFORMATION); + end; + end; + end; +end; + +procedure TfmMain.buDisconnectClick(Sender: TObject); +begin + PgSSHDB.Close; + buConnect.Enabled := True; + buDisConnect.Enabled := False; + lbTables.Clear; +end; + +procedure TfmMain.lbTablesClick(Sender: TObject); +begin + if lbTables.ItemIndex = -1 then Exit; + PSQLT.Close; + PSQLT.TableName := lbTables.Items[lbTables.ItemIndex]; + PSQLT.Open; +end; + +end. diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj similarity index 97% rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj index d6d421c..e126b09 100644 --- a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj +++ b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.bdsproj @@ -1,175 +1,175 @@ - - - - - - - - - - - - mySSHDatabaseBDS2006.dpk - - - 7.0 - - - 8 - 0 - 1 - 1 - 0 - 0 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1 - 1 - 1 - True - True - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - True - False - False - False - True - True - True - True - True - True - - - - 0 - 0 - False - 1 - False - False - False - 16384 - 1048576 - 4194304 - - - - - - - - - - - - False - - - - - - False - - - True - False - - - - $00000000 - - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - + + + + + + + + + + + + mySSHDatabaseBDS2006.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + + + + + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk index f40ebfd..95adddd 100644 --- a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk +++ b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseBDS2006; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - PostgresDAC10, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseBDS2006; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + PostgresDAC10, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res b/Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res similarity index 100% rename from TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res rename to Source/TPSQLSSHDatabase/SRC/BDS2006/PgSSHDatabaseBDS2006.res diff --git a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk similarity index 94% rename from TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk rename to Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk index 00a4182..eb576f6 100644 --- a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk +++ b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.dpk @@ -1,37 +1,37 @@ -package PgSSHDatabaseD5; - -{$R *.RES} -{$ALIGN ON} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST ON} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl50, - Vcldb50, - Vclbde50, - PostgresDAC5, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseD5; + +{$R *.RES} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl50, + Vcldb50, + Vclbde50, + PostgresDAC5, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res b/Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res similarity index 100% rename from TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res rename to Source/TPSQLSSHDatabase/SRC/Delphi5/PgSSHDatabaseD5.res diff --git a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk rename to Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk index bc654a4..8e5653c 100644 --- a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk +++ b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseD6; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - rtl, - vcl, - dbrtl, - vcldb, - bdertl, - PostgresDAC6, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseD6; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + vcldb, + bdertl, + PostgresDAC6, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res b/Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res similarity index 100% rename from TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res rename to Source/TPSQLSSHDatabase/SRC/Delphi6/PgSSHDatabaseD6.res diff --git a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk rename to Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk index 12eb388..4cc3a28 100644 --- a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk +++ b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseD7; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - PostgresDAC7, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseD7; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + PostgresDAC7, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res b/Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res similarity index 100% rename from TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res rename to Source/TPSQLSSHDatabase/SRC/Delphi7/PgSSHDatabaseD7.res diff --git a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk rename to Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk index 6f79dd0..9d7813d 100644 --- a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk +++ b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseD9; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - rtl, - vcl, - dbrtl, - vcldb, - bdertl, - PostgresDAC9, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseD9; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + vcldb, + bdertl, + PostgresDAC9, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res b/Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res similarity index 100% rename from TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res rename to Source/TPSQLSSHDatabase/SRC/Delphi9/PgSSHDatabaseD9.res diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas similarity index 96% rename from TPSQLSSHDatabase/SRC/PgSSHDatabase.pas rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas index fdac5f8..0d57e45 100644 --- a/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas +++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase.pas @@ -1,435 +1,435 @@ -{$I PSQLDAC.inc} -unit PgSSHDatabase; - -// One should uncomment only one directive -{$DEFINE USE_SSH_PLINK} // this allows to connect via plink.exe -{ .$DEFINE USE_SSH_WEONLYDO } // this allows to connect via WeOnlyDo - -interface - -uses - Classes, Windows, SysUtils, - {$IFDEF USE_SSH_WEONLYDO}wodSSHTunnelLib_TLB, {$ENDIF} - PSQLDbTables, PSQLTypes; - -type - ESSHConnectError = class(Exception); - - TPgSSHDatabase = class(TPSQLDatabase) - private - FSSHEnabled: boolean; - FInitPort: Cardinal; - FInitHost: string; - FSSHPort: integer; - FSSHHost: string; - FSSHLogin: string; - FSSHPassword: string; - FOnTunnelConnected: TNotifyEvent; -{$IFDEF USE_SSH_WEONLYDO} - FTunnel: TwodTunnel; - FIsSSHConnecting: boolean; - FLastSSHError: string; - FOnTunnelDisconnected: TwodTunnelDisconnected; - FOnTunnelChannelStart: TwodTunnelChannelStart; - FOnTunnelChannelStop: TwodTunnelChannelStop; - FOnTunnelCryptoInformation: TwodTunnelCryptoInformation; - FOnTunnelUserConnected: TwodTunnelUserConnected; - FOnTunnelUserDisconnected: TwodTunnelUserDisconnected; -{$ELSE} // USE_SSH_PLINK defined - FPLinkPath: String; - FPlinkProcInfo: TProcessInformation; -{$ENDIF} - FSSHUseCompression: boolean; - FSSHCompressionLevel: integer; - FSSHTimeout: integer; - FInitialLocalPort: integer; - FShowPLinkConsole: boolean; - FAddSSHKeyToSystemCache: boolean; -{$IFDEF USE_SSH_WEONLYDO} - procedure DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; Port: integer; - var Allow: WordBool); - procedure DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString); - procedure DoOnTunnelConnected(Sender: TObject); - procedure DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint; - const ErrorText: WideString); - procedure DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel); - procedure DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; ErrorCode: Smallint; - const ErrorText: WideString); - function CreateSSHTunnel: TwodTunnel; -{$ELSE} // USE_SSH_PLINK defined - procedure ShutdownPlink; -{$IFEND} - procedure RemoveSSHConnection; - procedure SetInitialLocalPort(const Value: integer); - protected - procedure DoConnect; override; - procedure SetConnected(Value: boolean); override; - public - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - - published -{$IFDEF USE_SSH_PLINK} - property AddSSHKeyToSystemCache: boolean read FAddSSHKeyToSystemCache write FAddSSHKeyToSystemCache; - property PathPLinkExe: String read FPLinkPath write FPLinkPath; - property ShowPLinkConsole: boolean read FShowPLinkConsole write FShowPLinkConsole default False; -{$ENDIF} - property SSHEnabled: boolean read FSSHEnabled write FSSHEnabled default False; - property SSHHost: string read FSSHHost write FSSHHost; - property SSHLogin: string read FSSHLogin write FSSHLogin; - property SSHPassword: string read FSSHPassword write FSSHPassword; - property SSHPort: integer read FSSHPort write FSSHPort default 22; - property SSHTimeout: integer read FSSHTimeout write FSSHTimeout; - property SSHUseCompression: boolean read FSSHUseCompression write FSSHUseCompression; - property SSHCompressionLevel: integer read FSSHCompressionLevel write FSSHCompressionLevel; - property InitialLocalPort: integer read FInitialLocalPort write SetInitialLocalPort default 3380; - property OnTunnelConnected: TNotifyEvent read FOnTunnelConnected write FOnTunnelConnected; -{$IFDEF USE_SSH_WEONLYDO} - property OnTunnelDisconnected: TwodTunnelDisconnected read FOnTunnelDisconnected write FOnTunnelDisconnected; - property OnTunnelChannelStart: TwodTunnelChannelStart read FOnTunnelChannelStart write FOnTunnelChannelStart; - property OnTunnelChannelStop: TwodTunnelChannelStop read FOnTunnelChannelStop write FOnTunnelChannelStop; - property OnTunnelUserConnected: TwodTunnelUserConnected read FOnTunnelUserConnected write FOnTunnelUserConnected; - property OnTunnelUserDisconnected: TwodTunnelUserDisconnected read FOnTunnelUserDisconnected - write FOnTunnelUserDisconnected; - property OnTunnelCryptoInformation: TwodTunnelCryptoInformation read FOnTunnelCryptoInformation - write FOnTunnelCryptoInformation; -{$ENDIF} - end; - - procedure Register; - -implementation - -uses ShellAPI; - -{$R SSHDB.DCR} - -{$IFDEF USE_SSH_WEONLYDO} -var - TunnelList: TList; - InitLocalPort: integer; -{$ENDIF} - -procedure Register; -begin - RegisterComponents('PostgresDAC',[TPgSSHDatabase] ); -end; - -{ TPgSSHDatabase } - -constructor TPgSSHDatabase.Create(AOwner: TComponent); -begin - inherited; -{$IFDEF USE_SSH_WEONLYDO} - FTunnel := nil; -{$ENDIF} - FSSHEnabled := False; - FSSHTimeout := 120; - FSSHUseCompression := False; - FSSHCompressionLevel := 6; - FSSHPort := 22; - FInitialLocalPort := 3380; - CheckIfActiveOnParamChange := False; - PathPLinkExe := 'plink' {$IFDEF MSWINDOWS} + '.exe' {$ENDIF}; -end; - -destructor TPgSSHDatabase.Destroy; -begin - RemoveSSHConnection(); - inherited; -end; - -{$IFDEF USE_SSH_WEONLYDO} -procedure TPgSSHDatabase.RemoveSSHConnection; -begin - if Assigned(FTunnel) then - begin - FTunnel.Tag := FTunnel.Tag - 1; - if FTunnel.Tag = 0 then - begin - TunnelList.Remove(FTunnel); - FTunnel.Channels.StopAll(); - FTunnel.Channels.RemoveAll(); - Dec(InitLocalPort); - FTunnel.Disconnect(); - FTunnel.Free(); - FTunnel := nil; - end; - end; -end; -{$ELSE} -procedure TPgSSHDatabase.RemoveSSHConnection; -begin - ShutdownPlink; -end; -{$ENDIF} - -{$IFDEF USE_SSH_WEONLYDO} -function TPgSSHDatabase.CreateSSHTunnel: TwodTunnel; -var - AErrorMsg: string; -begin - Result := TwodTunnel.Create(nil); - Result.Encryption := encAny; - Result.Authentication := authPassword; - Result.Protocol := SSHAuto; - Result.OnConnected := DoOnTunnelConnected; - Result.OnDisconnected := DoOnTunnelDisconnected; - Result.OnUserConnecting := DoOnTunnelUserConnecting; - Result.OnChannelStop := DoOnTunnelChannelStop; - Result.OnChannelStart := DoOnTunnelChannelStart; - Result.OnCryptoInformation := FOnTunnelCryptoInformation; - Result.OnUserConnected := FOnTunnelUserConnected; - Result.OnUserDisconnected := DoOnTunnelUserDisconnected; - Result.Hostname := FSSHHost; - Result.Port := FSSHPort; - Result.Login := FSSHLogin; - Result.Password := FSSHPassword; - Result.Timeout := FSSHTimeout; - if FSSHUseCompression then - Result.Compression := FSSHCompressionLevel - else - Result.Compression := 0; - Result.Threads := True; - Inc(InitLocalPort); - Result.Channels.Add(LocalListen, '0.0.0.0', InitLocalPort, Host, FInitPort); - FLastSSHError := EmptyStr; - FIsSSHConnecting := True; - Result.Connect(); - while FIsSSHConnecting do - Application.ProcessMessages(); - if not((Result.State = wodSSHTunnelLib_TLB.Connected) and (Result.Channels.Count > 0) and Result.Channels[0].Activated) - then - begin - TunnelList.Remove(Result); - Result.Free(); - AErrorMsg := 'SSH Connection Failed'; - if FLastSSHError <> EmptyStr then - AErrorMsg := Format('%s with Error: %s', [AErrorMsg, FLastSSHError]); - raise ESSHConnectError.Create(AErrorMsg); - end; -end; - -procedure TPgSSHDatabase.DoConnect; -var - i: integer; - ATunnel: TwodTunnel; -begin - FInitPort := Port; - FInitHost := Host; - try - if FSSHEnabled then - begin - ATunnel := nil; - for i := 0 to TunnelList.Count - 1 do - begin - ATunnel := TwodTunnel(TunnelList[i]); - if (ATunnel.Hostname = FSSHHost) and (ATunnel.Port = SSHPort) and (ATunnel.Password = SSHPassword) and - (ATunnel.Login = SSHLogin) and (ATunnel.Channels.Count > 0) and - (ATunnel.Channels[0].RemotePort = integer(Port)) then - Break - else - ATunnel := nil; - end; - if ATunnel = nil then - ATunnel := CreateSSHTunnel(); - if ATunnel = nil then - raise ESSHConnectError.Create('SSH Connection Failed'); - ATunnel.Tag := ATunnel.Tag + 1; - FTunnel := ATunnel; - Host := 'localhost'; - Port := ATunnel.Channels[0].LocalPort; - end; - inherited DoConnect(); - finally - Port := FInitPort; - Host := FInitHost; - end; -end; -{$ELSE} -procedure TPgSSHDatabase.DoConnect; -var - ConnectStr: String; - StartupInfo: TStartupInfo; - ExCode: LongWord; - StartFlags: cardinal; - - procedure StartTunnelAndAcceptKey; - var ShExecInfo: TShellExecuteInfo; - begin - FillChar(ShExecInfo, SizeOf(ShExecInfo), 0); - ShExecInfo.cbSize := SizeOf(TShellExecuteInfo); - ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS; - ShExecInfo.Wnd := 0; - ShExecInfo.lpVerb := nil; - ShExecInfo.lpFile := 'cmd.exe'; - ShExecInfo.lpParameters := PChar(Format('/c echo y | %s -t exit', [ConnectStr])); - ShExecInfo.lpDirectory := nil; - ShExecInfo.nShow := SW_HIDE; - ShExecInfo.hInstApp := 0; - ShellExecuteEx(@ShExecInfo); - WaitForSingleObject(ShExecInfo.hProcess, INFINITE); - end; - -begin - FInitPort := Port; - FInitHost := Host; - StartFlags := CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS; - if not FShowPLinkConsole then - StartFlags := StartFlags + CREATE_NO_WINDOW; - try - if FSSHEnabled then - begin - if not FileExists(FPLinkPath) then - raise ESSHConnectError.Create('Please specify path to PLink.exe!'); - ConnectStr := AnsiQuotedStr(FPLinkPath, '"') + ' -ssh -batch '; - if SSHLogin <> '' then - ConnectStr := ConnectStr + SSHLogin + '@'; - if SSHHost <> '' then - ConnectStr := ConnectStr + SSHHost - else - ConnectStr := ConnectStr + Host; - if SSHPassword <> '' then - ConnectStr := ConnectStr + ' -pw ' + AnsiQuotedStr(SSHPassword, '"'); - if SSHPort > 0 then - ConnectStr := ConnectStr + Format(' -P %u', [SSHPort]); - if FAddSSHKeyToSystemCache then - StartTunnelAndAcceptKey(); - ConnectStr := ConnectStr + Format(' -v -T -N -L %u:%s:%u', [InitialLocalPort, Host, Port]); - FillChar(FPlinkProcInfo, SizeOf(TProcessInformation), 0); - FillChar(StartupInfo, SizeOf(TStartupInfo), 0); - StartupInfo.cb := SizeOf(TStartupInfo); - if CreateProcess(nil, PChar(ConnectStr), nil, nil, False, StartFlags, nil, nil, StartupInfo, FPlinkProcInfo) then - begin - WaitForSingleObject(FPlinkProcInfo.hProcess, SSHTimeout); - GetExitCodeProcess(FPlinkProcInfo.hProcess, ExCode); - if ExCode <> STILL_ACTIVE then - raise ESSHConnectError.CreateFmt('Failed to connect. Check the settings for PLink. Exit code: %d', [ExCode]); - end - else - begin - ShutdownPlink; - RaiseLastOSError(); - end; - if Assigned(FOnTunnelConnected) then - FOnTunnelConnected(Self); - Host := 'localhost'; - Port := InitialLocalPort; - end; - try - inherited DoConnect(); - except - ShutdownPlink; - raise; - end; - finally - Port := FInitPort; - Host := FInitHost; - end; -end; -{$ENDIF} - -procedure TPgSSHDatabase.SetConnected(Value: Boolean); -begin - inherited; - if (not (csDestroying in ComponentState)) and (not Value) then - RemoveSSHConnection(); -end; - -{$IFDEF USE_SSH_WEONLYDO} -procedure TPgSSHDatabase.DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; - Port: integer; var Allow: WordBool); -begin - Allow := True; -end; - -procedure TPgSSHDatabase.DoOnTunnelConnected(Sender: TObject); -begin - try - TwodTunnel(Sender).Channels.StartAll(); - except - FIsSSHConnecting := False; - Exit; - end; - - if Assigned(FOnTunnelConnected) then - FOnTunnelConnected(Sender); -end; - -procedure TPgSSHDatabase.DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString); -begin - FIsSSHConnecting := False; - - if ErrorText <> '' then - FLastSSHError := ErrorText - else - FLastSSHError := 'Connection broke unexpectedly'; - - if Assigned(FOnTunnelDisconnected) then - FOnTunnelDisconnected(Sender, ErrorCode, ErrorText); -end; - -procedure TPgSSHDatabase.DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel); -begin - FIsSSHConnecting := False; -end; - -procedure TPgSSHDatabase.DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint; - const ErrorText: WideString); -begin - FIsSSHConnecting := False; - - if ErrorText <> '' then - FLastSSHError := ErrorText - else - FLastSSHError := 'Channel stopped unexpectedly'; -end; - -procedure TPgSSHDatabase.DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; - ErrorCode: Smallint; const ErrorText: WideString); -begin - if ErrorText <> '' then - FLastSSHError := ErrorText - else - FLastSSHError := 'User disconnected unexpectedly'; - if Assigned(FOnTunnelUserDisconnected) then - FOnTunnelUserDisconnected(ASender, Chan, User, ErrorCode, ErrorText); -end; - -{$ELSE} - -procedure TPgSSHDatabase.ShutdownPlink; -begin - if FPlinkProcInfo.hProcess > 0 then - begin - TerminateProcess(FPlinkProcInfo.hProcess, 0); - CloseHandle(FPlinkProcInfo.hProcess); - ZeroMemory(@FPlinkProcInfo, SizeOf(FPlinkProcInfo)); - end; -end; - -{$ENDIF} - -procedure TPgSSHDatabase.SetInitialLocalPort(const Value: integer); -begin - FInitialLocalPort := Value; -{$IFDEF USE_SSH_WEONLYDO} - if InitLocalPort = 3380 then - InitLocalPort := Value; -{$ENDIF} -end; - -{$IFDEF USE_SSH_WEONLYDO} - -initialization - - TunnelList := TList.Create(); - InitLocalPort := 3380; - -finalization - - TunnelList.Free(); - -{$ENDIF} - -end. +{$I PSQLDAC.inc} +unit PgSSHDatabase; + +// One should uncomment only one directive +{$DEFINE USE_SSH_PLINK} // this allows to connect via plink.exe +{ .$DEFINE USE_SSH_WEONLYDO } // this allows to connect via WeOnlyDo + +interface + +uses + Classes, Windows, SysUtils, + {$IFDEF USE_SSH_WEONLYDO}wodSSHTunnelLib_TLB, {$ENDIF} + PSQLDbTables, PSQLTypes; + +type + ESSHConnectError = class(Exception); + + TPgSSHDatabase = class(TPSQLDatabase) + private + FSSHEnabled: boolean; + FInitPort: Cardinal; + FInitHost: string; + FSSHPort: integer; + FSSHHost: string; + FSSHLogin: string; + FSSHPassword: string; + FOnTunnelConnected: TNotifyEvent; +{$IFDEF USE_SSH_WEONLYDO} + FTunnel: TwodTunnel; + FIsSSHConnecting: boolean; + FLastSSHError: string; + FOnTunnelDisconnected: TwodTunnelDisconnected; + FOnTunnelChannelStart: TwodTunnelChannelStart; + FOnTunnelChannelStop: TwodTunnelChannelStop; + FOnTunnelCryptoInformation: TwodTunnelCryptoInformation; + FOnTunnelUserConnected: TwodTunnelUserConnected; + FOnTunnelUserDisconnected: TwodTunnelUserDisconnected; +{$ELSE} // USE_SSH_PLINK defined + FPLinkPath: String; + FPlinkProcInfo: TProcessInformation; +{$ENDIF} + FSSHUseCompression: boolean; + FSSHCompressionLevel: integer; + FSSHTimeout: integer; + FInitialLocalPort: integer; + FShowPLinkConsole: boolean; + FAddSSHKeyToSystemCache: boolean; +{$IFDEF USE_SSH_WEONLYDO} + procedure DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; Port: integer; + var Allow: WordBool); + procedure DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString); + procedure DoOnTunnelConnected(Sender: TObject); + procedure DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint; + const ErrorText: WideString); + procedure DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel); + procedure DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; ErrorCode: Smallint; + const ErrorText: WideString); + function CreateSSHTunnel: TwodTunnel; +{$ELSE} // USE_SSH_PLINK defined + procedure ShutdownPlink; +{$IFEND} + procedure RemoveSSHConnection; + procedure SetInitialLocalPort(const Value: integer); + protected + procedure DoConnect; override; + procedure SetConnected(Value: boolean); override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + published +{$IFDEF USE_SSH_PLINK} + property AddSSHKeyToSystemCache: boolean read FAddSSHKeyToSystemCache write FAddSSHKeyToSystemCache; + property PathPLinkExe: String read FPLinkPath write FPLinkPath; + property ShowPLinkConsole: boolean read FShowPLinkConsole write FShowPLinkConsole default False; +{$ENDIF} + property SSHEnabled: boolean read FSSHEnabled write FSSHEnabled default False; + property SSHHost: string read FSSHHost write FSSHHost; + property SSHLogin: string read FSSHLogin write FSSHLogin; + property SSHPassword: string read FSSHPassword write FSSHPassword; + property SSHPort: integer read FSSHPort write FSSHPort default 22; + property SSHTimeout: integer read FSSHTimeout write FSSHTimeout; + property SSHUseCompression: boolean read FSSHUseCompression write FSSHUseCompression; + property SSHCompressionLevel: integer read FSSHCompressionLevel write FSSHCompressionLevel; + property InitialLocalPort: integer read FInitialLocalPort write SetInitialLocalPort default 3380; + property OnTunnelConnected: TNotifyEvent read FOnTunnelConnected write FOnTunnelConnected; +{$IFDEF USE_SSH_WEONLYDO} + property OnTunnelDisconnected: TwodTunnelDisconnected read FOnTunnelDisconnected write FOnTunnelDisconnected; + property OnTunnelChannelStart: TwodTunnelChannelStart read FOnTunnelChannelStart write FOnTunnelChannelStart; + property OnTunnelChannelStop: TwodTunnelChannelStop read FOnTunnelChannelStop write FOnTunnelChannelStop; + property OnTunnelUserConnected: TwodTunnelUserConnected read FOnTunnelUserConnected write FOnTunnelUserConnected; + property OnTunnelUserDisconnected: TwodTunnelUserDisconnected read FOnTunnelUserDisconnected + write FOnTunnelUserDisconnected; + property OnTunnelCryptoInformation: TwodTunnelCryptoInformation read FOnTunnelCryptoInformation + write FOnTunnelCryptoInformation; +{$ENDIF} + end; + + procedure Register; + +implementation + +uses ShellAPI; + +{$R SSHDB.DCR} + +{$IFDEF USE_SSH_WEONLYDO} +var + TunnelList: TList; + InitLocalPort: integer; +{$ENDIF} + +procedure Register; +begin + RegisterComponents('PostgresDAC',[TPgSSHDatabase] ); +end; + +{ TPgSSHDatabase } + +constructor TPgSSHDatabase.Create(AOwner: TComponent); +begin + inherited; +{$IFDEF USE_SSH_WEONLYDO} + FTunnel := nil; +{$ENDIF} + FSSHEnabled := False; + FSSHTimeout := 120; + FSSHUseCompression := False; + FSSHCompressionLevel := 6; + FSSHPort := 22; + FInitialLocalPort := 3380; + CheckIfActiveOnParamChange := False; + PathPLinkExe := 'plink' {$IFDEF MSWINDOWS} + '.exe' {$ENDIF}; +end; + +destructor TPgSSHDatabase.Destroy; +begin + RemoveSSHConnection(); + inherited; +end; + +{$IFDEF USE_SSH_WEONLYDO} +procedure TPgSSHDatabase.RemoveSSHConnection; +begin + if Assigned(FTunnel) then + begin + FTunnel.Tag := FTunnel.Tag - 1; + if FTunnel.Tag = 0 then + begin + TunnelList.Remove(FTunnel); + FTunnel.Channels.StopAll(); + FTunnel.Channels.RemoveAll(); + Dec(InitLocalPort); + FTunnel.Disconnect(); + FTunnel.Free(); + FTunnel := nil; + end; + end; +end; +{$ELSE} +procedure TPgSSHDatabase.RemoveSSHConnection; +begin + ShutdownPlink; +end; +{$ENDIF} + +{$IFDEF USE_SSH_WEONLYDO} +function TPgSSHDatabase.CreateSSHTunnel: TwodTunnel; +var + AErrorMsg: string; +begin + Result := TwodTunnel.Create(nil); + Result.Encryption := encAny; + Result.Authentication := authPassword; + Result.Protocol := SSHAuto; + Result.OnConnected := DoOnTunnelConnected; + Result.OnDisconnected := DoOnTunnelDisconnected; + Result.OnUserConnecting := DoOnTunnelUserConnecting; + Result.OnChannelStop := DoOnTunnelChannelStop; + Result.OnChannelStart := DoOnTunnelChannelStart; + Result.OnCryptoInformation := FOnTunnelCryptoInformation; + Result.OnUserConnected := FOnTunnelUserConnected; + Result.OnUserDisconnected := DoOnTunnelUserDisconnected; + Result.Hostname := FSSHHost; + Result.Port := FSSHPort; + Result.Login := FSSHLogin; + Result.Password := FSSHPassword; + Result.Timeout := FSSHTimeout; + if FSSHUseCompression then + Result.Compression := FSSHCompressionLevel + else + Result.Compression := 0; + Result.Threads := True; + Inc(InitLocalPort); + Result.Channels.Add(LocalListen, '0.0.0.0', InitLocalPort, Host, FInitPort); + FLastSSHError := EmptyStr; + FIsSSHConnecting := True; + Result.Connect(); + while FIsSSHConnecting do + Application.ProcessMessages(); + if not((Result.State = wodSSHTunnelLib_TLB.Connected) and (Result.Channels.Count > 0) and Result.Channels[0].Activated) + then + begin + TunnelList.Remove(Result); + Result.Free(); + AErrorMsg := 'SSH Connection Failed'; + if FLastSSHError <> EmptyStr then + AErrorMsg := Format('%s with Error: %s', [AErrorMsg, FLastSSHError]); + raise ESSHConnectError.Create(AErrorMsg); + end; +end; + +procedure TPgSSHDatabase.DoConnect; +var + i: integer; + ATunnel: TwodTunnel; +begin + FInitPort := Port; + FInitHost := Host; + try + if FSSHEnabled then + begin + ATunnel := nil; + for i := 0 to TunnelList.Count - 1 do + begin + ATunnel := TwodTunnel(TunnelList[i]); + if (ATunnel.Hostname = FSSHHost) and (ATunnel.Port = SSHPort) and (ATunnel.Password = SSHPassword) and + (ATunnel.Login = SSHLogin) and (ATunnel.Channels.Count > 0) and + (ATunnel.Channels[0].RemotePort = integer(Port)) then + Break + else + ATunnel := nil; + end; + if ATunnel = nil then + ATunnel := CreateSSHTunnel(); + if ATunnel = nil then + raise ESSHConnectError.Create('SSH Connection Failed'); + ATunnel.Tag := ATunnel.Tag + 1; + FTunnel := ATunnel; + Host := 'localhost'; + Port := ATunnel.Channels[0].LocalPort; + end; + inherited DoConnect(); + finally + Port := FInitPort; + Host := FInitHost; + end; +end; +{$ELSE} +procedure TPgSSHDatabase.DoConnect; +var + ConnectStr: String; + StartupInfo: TStartupInfo; + ExCode: LongWord; + StartFlags: cardinal; + + procedure StartTunnelAndAcceptKey; + var ShExecInfo: TShellExecuteInfo; + begin + FillChar(ShExecInfo, SizeOf(ShExecInfo), 0); + ShExecInfo.cbSize := SizeOf(TShellExecuteInfo); + ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS; + ShExecInfo.Wnd := 0; + ShExecInfo.lpVerb := nil; + ShExecInfo.lpFile := 'cmd.exe'; + ShExecInfo.lpParameters := PChar(Format('/c echo y | %s -t exit', [ConnectStr])); + ShExecInfo.lpDirectory := nil; + ShExecInfo.nShow := SW_HIDE; + ShExecInfo.hInstApp := 0; + ShellExecuteEx(@ShExecInfo); + WaitForSingleObject(ShExecInfo.hProcess, INFINITE); + end; + +begin + FInitPort := Port; + FInitHost := Host; + StartFlags := CREATE_DEFAULT_ERROR_MODE + NORMAL_PRIORITY_CLASS; + if not FShowPLinkConsole then + StartFlags := StartFlags + CREATE_NO_WINDOW; + try + if FSSHEnabled then + begin + if not FileExists(FPLinkPath) then + raise ESSHConnectError.Create('Please specify path to PLink.exe!'); + ConnectStr := AnsiQuotedStr(FPLinkPath, '"') + ' -ssh -batch '; + if SSHLogin <> '' then + ConnectStr := ConnectStr + SSHLogin + '@'; + if SSHHost <> '' then + ConnectStr := ConnectStr + SSHHost + else + ConnectStr := ConnectStr + Host; + if SSHPassword <> '' then + ConnectStr := ConnectStr + ' -pw ' + AnsiQuotedStr(SSHPassword, '"'); + if SSHPort > 0 then + ConnectStr := ConnectStr + Format(' -P %u', [SSHPort]); + if FAddSSHKeyToSystemCache then + StartTunnelAndAcceptKey(); + ConnectStr := ConnectStr + Format(' -v -T -N -L %u:%s:%u', [InitialLocalPort, Host, Port]); + FillChar(FPlinkProcInfo, SizeOf(TProcessInformation), 0); + FillChar(StartupInfo, SizeOf(TStartupInfo), 0); + StartupInfo.cb := SizeOf(TStartupInfo); + if CreateProcess(nil, PChar(ConnectStr), nil, nil, False, StartFlags, nil, nil, StartupInfo, FPlinkProcInfo) then + begin + WaitForSingleObject(FPlinkProcInfo.hProcess, SSHTimeout); + GetExitCodeProcess(FPlinkProcInfo.hProcess, ExCode); + if ExCode <> STILL_ACTIVE then + raise ESSHConnectError.CreateFmt('Failed to connect. Check the settings for PLink. Exit code: %d', [ExCode]); + end + else + begin + ShutdownPlink; + RaiseLastOSError(); + end; + if Assigned(FOnTunnelConnected) then + FOnTunnelConnected(Self); + Host := 'localhost'; + Port := InitialLocalPort; + end; + try + inherited DoConnect(); + except + ShutdownPlink; + raise; + end; + finally + Port := FInitPort; + Host := FInitHost; + end; +end; +{$ENDIF} + +procedure TPgSSHDatabase.SetConnected(Value: Boolean); +begin + inherited; + if (not (csDestroying in ComponentState)) and (not Value) then + RemoveSSHConnection(); +end; + +{$IFDEF USE_SSH_WEONLYDO} +procedure TPgSSHDatabase.DoOnTunnelUserConnecting(Sender: TObject; const Chan: IChannel; const Hostname: WideString; + Port: integer; var Allow: WordBool); +begin + Allow := True; +end; + +procedure TPgSSHDatabase.DoOnTunnelConnected(Sender: TObject); +begin + try + TwodTunnel(Sender).Channels.StartAll(); + except + FIsSSHConnecting := False; + Exit; + end; + + if Assigned(FOnTunnelConnected) then + FOnTunnelConnected(Sender); +end; + +procedure TPgSSHDatabase.DoOnTunnelDisconnected(Sender: TObject; ErrorCode: Smallint; const ErrorText: WideString); +begin + FIsSSHConnecting := False; + + if ErrorText <> '' then + FLastSSHError := ErrorText + else + FLastSSHError := 'Connection broke unexpectedly'; + + if Assigned(FOnTunnelDisconnected) then + FOnTunnelDisconnected(Sender, ErrorCode, ErrorText); +end; + +procedure TPgSSHDatabase.DoOnTunnelChannelStart(Sender: TObject; const Chan: IChannel); +begin + FIsSSHConnecting := False; +end; + +procedure TPgSSHDatabase.DoOnTunnelChannelStop(Sender: TObject; const Chan: IChannel; ErrorCode: Smallint; + const ErrorText: WideString); +begin + FIsSSHConnecting := False; + + if ErrorText <> '' then + FLastSSHError := ErrorText + else + FLastSSHError := 'Channel stopped unexpectedly'; +end; + +procedure TPgSSHDatabase.DoOnTunnelUserDisconnected(ASender: TObject; const Chan: IChannel; const User: IUser; + ErrorCode: Smallint; const ErrorText: WideString); +begin + if ErrorText <> '' then + FLastSSHError := ErrorText + else + FLastSSHError := 'User disconnected unexpectedly'; + if Assigned(FOnTunnelUserDisconnected) then + FOnTunnelUserDisconnected(ASender, Chan, User, ErrorCode, ErrorText); +end; + +{$ELSE} + +procedure TPgSSHDatabase.ShutdownPlink; +begin + if FPlinkProcInfo.hProcess > 0 then + begin + TerminateProcess(FPlinkProcInfo.hProcess, 0); + CloseHandle(FPlinkProcInfo.hProcess); + ZeroMemory(@FPlinkProcInfo, SizeOf(FPlinkProcInfo)); + end; +end; + +{$ENDIF} + +procedure TPgSSHDatabase.SetInitialLocalPort(const Value: integer); +begin + FInitialLocalPort := Value; +{$IFDEF USE_SSH_WEONLYDO} + if InitLocalPort = 3380 then + InitLocalPort := Value; +{$ENDIF} +end; + +{$IFDEF USE_SSH_WEONLYDO} + +initialization + + TunnelList := TList.Create(); + InitLocalPort := 3380; + +finalization + + TunnelList.Free(); + +{$ENDIF} + +end. diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk similarity index 94% rename from TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk index 7f98a74..6be954f 100644 --- a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk +++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dpk @@ -1,40 +1,40 @@ -package PgSSHDatabase26; - -{$R *.res} -{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO OFF} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS OFF} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$DEFINE RELEASE} -{$ENDIF IMPLICITBUILDING} -{$IMPLICITBUILD ON} - -requires - vcl, - rtl, - dbrtl, - vcldb, - PostgresDAC26; - -contains - PgSSHDatabase in 'PgSSHDatabase.pas'; - -end. +package PgSSHDatabase26; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS OFF} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE RELEASE} +{$ENDIF IMPLICITBUILDING} +{$IMPLICITBUILD ON} + +requires + vcl, + rtl, + dbrtl, + vcldb, + PostgresDAC26; + +contains + PgSSHDatabase in 'PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj similarity index 98% rename from TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj rename to Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj index 0dcdf10..19ca571 100644 --- a/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj +++ b/Source/TPSQLSSHDatabase/SRC/PgSSHDatabase26.dproj @@ -1,107 +1,107 @@ - - - {735A1B86-3F1D-44E8-BB73-750D2985A506} - PgSSHDatabase26.dpk - True - Debug - 129 - Package - VCL - 18.7 - Win32 - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - false - false - false - false - false - 00400000 - true - true - PgSSHDatabase26 - Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;$(DCC_Namespace) - 1033 - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= - - - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - Debug - true - CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) - 1033 - - - RELEASE;$(DCC_Define) - 0 - false - 0 - - - DEBUG;$(DCC_Define) - false - true - - - - MainSource - - - - - - - - - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabase26.dpk - - - - False - False - False - True - True - False - - - 12 - - - - + + + {735A1B86-3F1D-44E8-BB73-750D2985A506} + PgSSHDatabase26.dpk + True + Debug + 129 + Package + VCL + 18.7 + Win32 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + false + false + false + false + false + 00400000 + true + true + PgSSHDatabase26 + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;$(DCC_Namespace) + 1033 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) + 1033 + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + DEBUG;$(DCC_Define) + false + true + + + + MainSource + + + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabase26.dpk + + + + False + False + False + True + True + False + + + 12 + + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk index 176360b..d81fc31 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudio2007; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - PostgresDAC11, - wodSSHTunnel; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudio2007; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + PostgresDAC11, + wodSSHTunnel; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj similarity index 99% rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj index 3d5f2ed..ead84a5 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.dproj @@ -1,32 +1,32 @@ - - - {ec92c14c-1ad9-42d0-aac4-a6a40844f9e7} - mySSHDatabaseRADStudio2007.dpk - Debug - AnyCPU - DCC32 - - - 7.0 - False - False - 0 - RELEASE - - - 7.0 - - - Delphi.Personality - Package - -FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse104912511.0.0.01.0.0.0mySSHDatabaseRADStudio2007.dpk - - - - - MainSource - - - + + + {ec92c14c-1ad9-42d0-aac4-a6a40844f9e7} + mySSHDatabaseRADStudio2007.dpk + Debug + AnyCPU + DCC32 + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse104912511.0.0.01.0.0.0mySSHDatabaseRADStudio2007.dpk + + + + + MainSource + + + \ No newline at end of file diff --git a/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res similarity index 100% rename from TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res rename to Source/TPSQLSSHDatabase/SRC/RADStudio2007/PgSSHDatabaseRADStudio2007.res diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk index 6085ac3..45597ba 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudio2009; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - wodSSHTunnel, - PostgresDAC12; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudio2009; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + wodSSHTunnel, + PostgresDAC12; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj similarity index 96% rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj index cf153a0..66464a8 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.dproj @@ -1,595 +1,595 @@ - - - {D72E1F59-49AE-4B61-B65B-C798392E7878} - PgSSHDatabaseRADStudio2009.dpk - Debug - DCC32 - 12.0 - - - true - - - true - Base - true - - - true - Base - true - - - 1 - C:\Users\Public\Documents\RAD Studio\6.0\Bpl\PgSSHDatabaseRADStudio2009.bpl - true - true - true - 00400000 - x86 - - - false - RELEASE;$(DCC_Define) - 0 - false - - - DEBUG;$(DCC_Define) - - - - MainSource - - - - - - - - - - Base - - - Cfg_2 - Base - - - Cfg_1 - Base - - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudio2009.dpk - - - False - True - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - CodeGear Delphi image support library - - - - 12 - - - - + + + {D72E1F59-49AE-4B61-B65B-C798392E7878} + PgSSHDatabaseRADStudio2009.dpk + Debug + DCC32 + 12.0 + + + true + + + true + Base + true + + + true + Base + true + + + 1 + C:\Users\Public\Documents\RAD Studio\6.0\Bpl\PgSSHDatabaseRADStudio2009.bpl + true + true + true + 00400000 + x86 + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + + + + + + + + + Base + + + Cfg_2 + Base + + + Cfg_1 + Base + + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudio2009.dpk + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + CodeGear Delphi image support library + + + + 12 + + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res similarity index 100% rename from TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res rename to Source/TPSQLSSHDatabase/SRC/RADStudio2009/PgSSHDatabaseRADStudio2009.res diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk index 8ca500c..2fb5b3a 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudio2010; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - wodSSHTunnel, - PostgresDAC14; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudio2010; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + wodSSHTunnel, + PostgresDAC14; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj similarity index 96% rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj index 27d8e42..b9e02ef 100644 --- a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.dproj @@ -1,595 +1,595 @@ - - - {D72E1F59-49AE-4B61-B65B-C798392E7878} - PgSSHDatabaseRADStudio2010.dpk - Debug - DCC32 - 12.0 - - - true - - - true - Base - true - - - true - Base - true - - - C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudio2010.bpl - true - true - true - 00400000 - x86 - - - false - RELEASE;$(DCC_Define) - 0 - false - - - DEBUG;$(DCC_Define) - - - - MainSource - - - - - - - - - - - Base - - - Cfg_2 - Base - - - Cfg_1 - Base - - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudio2010.dpk - - - False - True - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - CodeGear Delphi image support library - - - - 12 - - - - + + + {D72E1F59-49AE-4B61-B65B-C798392E7878} + PgSSHDatabaseRADStudio2010.dpk + Debug + DCC32 + 12.0 + + + true + + + true + Base + true + + + true + Base + true + + + C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudio2010.bpl + true + true + true + 00400000 + x86 + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + + + + + + + + + + Base + + + Cfg_2 + Base + + + Cfg_1 + Base + + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudio2010.dpk + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + CodeGear Delphi image support library + + + + 12 + + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res b/Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res similarity index 100% rename from TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res rename to Source/TPSQLSSHDatabase/SRC/RADStudio2010/PgSSHDatabaseRADStudio2010.res diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk similarity index 94% rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk index 3f912d1..c8a3076 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dpk @@ -1,41 +1,41 @@ -package PgSSHDatabaseRADStudio10; - -{$R *.res} -{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO OFF} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS OFF} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$DEFINE RELEASE} -{$ENDIF IMPLICITBUILDING} -{$IMPLICITBUILD ON} - -requires - vcl, - rtl, - dbrtl, - vcldb, - wodSSHTunnel, - PostgresDAC23; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudio10; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS OFF} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE RELEASE} +{$ENDIF IMPLICITBUILDING} +{$IMPLICITBUILD ON} + +requires + vcl, + rtl, + dbrtl, + vcldb, + wodSSHTunnel, + PostgresDAC23; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj similarity index 98% rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj index 665f654..765e105 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.dproj @@ -1,195 +1,195 @@ - - - {EDE94E4F-E342-4B34-BF27-008405D413A4} - PgSSHDatabaseRADStudio10.dpk - True - Release - 1025 - Package - VCL - 18.1 - Win32 - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - - - true - Base - true - - - true - Cfg_2 - true - true - - - true - 1 - false - false - 1049 - false - false - true - PgSSHDatabaseRADStudio10 - false - 00400000 - Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= - - - rtl;dbrtl;$(DCC_UsePackage) - android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar - package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= - Debug - - - rtl;dbrtl;$(DCC_UsePackage) - - - rtl;dbrtl;wodSSHTunnel;$(DCC_UsePackage) - - - rtl;dbrtl;$(DCC_UsePackage) - - - rtl;vcl;dbrtl;vcldb;wodSSHTunnel;PostgresDAC23;$(DCC_UsePackage) - System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - 1033 - true - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - - - rtl;vcl;dbrtl;vcldb;$(DCC_UsePackage) - - - RELEASE;$(DCC_Define) - 0 - false - 0 - - - Debug - - - 1033 - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - true - - - DEBUG;$(DCC_Define) - false - true - - - Debug - - - - MainSource - - - - - - - - - - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudio10.dpk - - - Embarcadero C++Builder Office 2000 Servers Package - Embarcadero C++Builder Office XP Servers Package - Microsoft Office 2000 Sample Automation Server Wrapper Components - Microsoft Office XP Sample Automation Server Wrapper Components - - - - False - False - True - False - True - False - - - 12 - - - - - - + + + {EDE94E4F-E342-4B34-BF27-008405D413A4} + PgSSHDatabaseRADStudio10.dpk + True + Release + 1025 + Package + VCL + 18.1 + Win32 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + 1 + false + false + 1049 + false + false + true + PgSSHDatabaseRADStudio10 + false + 00400000 + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= + + + rtl;dbrtl;$(DCC_UsePackage) + android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + + + rtl;dbrtl;$(DCC_UsePackage) + + + rtl;dbrtl;wodSSHTunnel;$(DCC_UsePackage) + + + rtl;dbrtl;$(DCC_UsePackage) + + + rtl;vcl;dbrtl;vcldb;wodSSHTunnel;PostgresDAC23;$(DCC_UsePackage) + System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + 1033 + true + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + + + rtl;vcl;dbrtl;vcldb;$(DCC_UsePackage) + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + Debug + + + 1033 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + true + + + DEBUG;$(DCC_Define) + false + true + + + Debug + + + + MainSource + + + + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudio10.dpk + + + Embarcadero C++Builder Office 2000 Servers Package + Embarcadero C++Builder Office XP Servers Package + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + False + False + True + False + True + False + + + 12 + + + + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res b/Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res similarity index 100% rename from TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res rename to Source/TPSQLSSHDatabase/SRC/RADStudioDX/PgSSHDatabaseRADStudio10.res diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk index 67532b0..2b73dea 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudioXE; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - wodSSHTunnel, - PostgresDAC15; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudioXE; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + wodSSHTunnel, + PostgresDAC15; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj similarity index 96% rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj index 2f8d184..254bff1 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.dproj @@ -1,595 +1,595 @@ - - - {D72E1F59-49AE-4B61-B65B-C798392E7878} - PgSSHDatabaseRADStudioXE.dpk - Debug - DCC32 - 12.0 - - - true - - - true - Base - true - - - true - Base - true - - - C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl - true - true - true - 00400000 - x86 - - - false - RELEASE;$(DCC_Define) - 0 - false - - - DEBUG;$(DCC_Define) - - - - MainSource - - - - - - - - - - - Base - - - Cfg_2 - Base - - - Cfg_1 - Base - - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudioXE.dpk - - - False - True - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - CodeGear Delphi image support library - - - - 12 - - - - + + + {D72E1F59-49AE-4B61-B65B-C798392E7878} + PgSSHDatabaseRADStudioXE.dpk + Debug + DCC32 + 12.0 + + + true + + + true + Base + true + + + true + Base + true + + + C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl + true + true + true + 00400000 + x86 + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + + + + + + + + + + Base + + + Cfg_2 + Base + + + Cfg_1 + Base + + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudioXE.dpk + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + CodeGear Delphi image support library + + + + 12 + + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res b/Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res similarity index 100% rename from TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE/PgSSHDatabaseRADStudioXE.res diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk index 5d53bff..24e506c 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudioXE2; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - wodSSHTunnel, - PostgresDAC16; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudioXE2; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + wodSSHTunnel, + PostgresDAC16; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj similarity index 97% rename from TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj index e2220b8..c4887e9 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE2/PgSSHDatabaseRADStudioXE2.dproj @@ -1,132 +1,132 @@ - - - {D72E1F59-49AE-4B61-B65B-C798392E7878} - PgSSHDatabaseRADStudioXE2.dpk - Debug - DCC32 - 13.4 - True - Package - VCL - Win32 - 1 - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) - true - 1049 - C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl - true - true - true - 00400000 - x86 - - - true - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - 1033 - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - - - false - RELEASE;$(DCC_Define) - 0 - false - - - DEBUG;$(DCC_Define) - - - - MainSource - - - - - - - - - - - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudioXE2.dpk - - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - CodeGear Delphi image support library - - - - False - True - - - 12 - - - + + + {D72E1F59-49AE-4B61-B65B-C798392E7878} + PgSSHDatabaseRADStudioXE2.dpk + Debug + DCC32 + 13.4 + True + Package + VCL + Win32 + 1 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) + true + 1049 + C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl + true + true + true + 00400000 + x86 + + + true + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + 1033 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + + + + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudioXE2.dpk + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + CodeGear Delphi image support library + + + + False + True + + + 12 + + + diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk similarity index 93% rename from TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk index f68126c..3fede68 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dpk @@ -1,39 +1,39 @@ -package PgSSHDatabaseRADStudioXE3; - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - vcl, - rtl, - dbrtl, - bdertl, - vcldb, - wodSSHTunnel, - PostgresDAC17; - -contains - PgSSHDatabase in '..\PgSSHDatabase.pas'; - -end. +package PgSSHDatabaseRADStudioXE3; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + dbrtl, + bdertl, + vcldb, + wodSSHTunnel, + PostgresDAC17; + +contains + PgSSHDatabase in '..\PgSSHDatabase.pas'; + +end. diff --git a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj similarity index 97% rename from TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj rename to Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj index d8b8e0d..69ae86e 100644 --- a/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj +++ b/Source/TPSQLSSHDatabase/SRC/RADStudioXE3/PgSSHDatabaseRADStudioXE3.dproj @@ -1,149 +1,149 @@ - - - {D72E1F59-49AE-4B61-B65B-C798392E7878} - PgSSHDatabaseRADStudioXE3.dpk - Debug - DCC32 - 13.4 - True - Package - VCL - Win32 - 1 - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) - true - 1049 - C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl - true - true - true - 00400000 - x86 - - - true - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - 1033 - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - - - false - RELEASE;$(DCC_Define) - 0 - false - - - DEBUG;$(DCC_Define) - - - - MainSource - - - - - - - - - - - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - - - - - Delphi.Personality.12 - Package - - - - PgSSHDatabaseRADStudioXE3.dpk - - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 1049 - 1251 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - CodeGear Delphi image support library - - - - False - True - - - 12 - - - - - + + + {D72E1F59-49AE-4B61-B65B-C798392E7878} + PgSSHDatabaseRADStudioXE3.dpk + Debug + DCC32 + 13.4 + True + Package + VCL + Win32 + 1 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) + true + 1049 + C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PgSSHDatabaseRADStudioXE.bpl + true + true + true + 00400000 + x86 + + + true + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + 1033 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + + + false + RELEASE;$(DCC_Define) + 0 + false + + + DEBUG;$(DCC_Define) + + + + MainSource + + + + + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + + + + + Delphi.Personality.12 + Package + + + + PgSSHDatabaseRADStudioXE3.dpk + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + CodeGear Delphi image support library + + + + False + True + + + 12 + + + + + diff --git a/TPSQLSSHDatabase/SRC/SSHDB.dcr b/Source/TPSQLSSHDatabase/SRC/SSHDB.dcr similarity index 100% rename from TPSQLSSHDatabase/SRC/SSHDB.dcr rename to Source/TPSQLSSHDatabase/SRC/SSHDB.dcr diff --git a/TPSQLSSHDatabase/install_ssh.txt b/Source/TPSQLSSHDatabase/install_ssh.txt similarity index 98% rename from TPSQLSSHDatabase/install_ssh.txt rename to Source/TPSQLSSHDatabase/install_ssh.txt index 7dc3e6c..e992d8c 100644 --- a/TPSQLSSHDatabase/install_ssh.txt +++ b/Source/TPSQLSSHDatabase/install_ssh.txt @@ -1,16 +1,16 @@ -TPgSSHDatabase component installation. - -1. TPgSSHDatabase uses the wodSSHTunnel ActiveX component - from WeOnlyDo! Software (http://www.weonlydo.com). - Before installing TPgSSHDatabase you should download the trial - version of wodSSHTunnel or purchase a registered copy at - http://www.weonlydo.com/index.asp?showform=SSHTunnel. -2. To install the wodSSHTunnel ActiveX component, run Delphi, - then open Component | Import ActiveX Control, select - 'WeOnlyDo! COM SSH Tunnel ActiveX Control' and click 'Create Unit'. - See wodSSHTunnel documentation for details. -3. Open wodSSHTunnel.dpk and click Compile. -3. Open PgSSHDatabaseDX.dpk (X stands for your Delphi version) - and click the 'Install' button. -4. The new PgSSHDatabase component will appear at the - PostgresDAC palette after the installation. +TPgSSHDatabase component installation. + +1. TPgSSHDatabase uses the wodSSHTunnel ActiveX component + from WeOnlyDo! Software (http://www.weonlydo.com). + Before installing TPgSSHDatabase you should download the trial + version of wodSSHTunnel or purchase a registered copy at + http://www.weonlydo.com/index.asp?showform=SSHTunnel. +2. To install the wodSSHTunnel ActiveX component, run Delphi, + then open Component | Import ActiveX Control, select + 'WeOnlyDo! COM SSH Tunnel ActiveX Control' and click 'Create Unit'. + See wodSSHTunnel documentation for details. +3. Open wodSSHTunnel.dpk and click Compile. +3. Open PgSSHDatabaseDX.dpk (X stands for your Delphi version) + and click the 'Install' button. +4. The new PgSSHDatabase component will appear at the + PostgresDAC palette after the installation. diff --git a/TPSQLSSHDatabase/wodSSHTunnel.cfg b/Source/TPSQLSSHDatabase/wodSSHTunnel.cfg similarity index 90% rename from TPSQLSSHDatabase/wodSSHTunnel.cfg rename to Source/TPSQLSSHDatabase/wodSSHTunnel.cfg index b0ff0bf..27dc635 100644 --- a/TPSQLSSHDatabase/wodSSHTunnel.cfg +++ b/Source/TPSQLSSHDatabase/wodSSHTunnel.cfg @@ -1,36 +1,36 @@ --$A+ --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi5\Projects\Bpl" --LN"c:\program files\borland\delphi5\Projects\Bpl" --Z +-$A+ +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi5\Projects\Bpl" +-LN"c:\program files\borland\delphi5\Projects\Bpl" +-Z diff --git a/TPSQLSSHDatabase/wodSSHTunnel.dpk b/Source/TPSQLSSHDatabase/wodSSHTunnel.dpk similarity index 93% rename from TPSQLSSHDatabase/wodSSHTunnel.dpk rename to Source/TPSQLSSHDatabase/wodSSHTunnel.dpk index 07af8e8..00b2728 100644 --- a/TPSQLSSHDatabase/wodSSHTunnel.dpk +++ b/Source/TPSQLSSHDatabase/wodSSHTunnel.dpk @@ -1,34 +1,34 @@ -package wodSSHTunnel; - -{$R *.RES} -{$ALIGN ON} -{$ASSERTIONS ON} -{$BOOLEVAL OFF} -{$DEBUGINFO ON} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS ON} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS OFF} -{$REFERENCEINFO ON} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $400000} -{$IMPLICITBUILD OFF} - -requires - rtl, - vcl; - -contains - wodSSHTunnelLib_TLB; - -end. +package wodSSHTunnel; + +{$R *.RES} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl; + +contains + wodSSHTunnelLib_TLB; + +end. diff --git a/TPSQLSSHDatabase/wodSSHTunnel.res b/Source/TPSQLSSHDatabase/wodSSHTunnel.res similarity index 100% rename from TPSQLSSHDatabase/wodSSHTunnel.res rename to Source/TPSQLSSHDatabase/wodSSHTunnel.res diff --git a/pg_dump_dll/pg_dump_10/Makefile b/Source/pg_dump_dll/pg_dump_10/Makefile similarity index 100% rename from pg_dump_dll/pg_dump_10/Makefile rename to Source/pg_dump_dll/pg_dump_10/Makefile diff --git a/pg_dump_dll/pg_dump_10/common.c b/Source/pg_dump_dll/pg_dump_10/common.c similarity index 100% rename from pg_dump_dll/pg_dump_10/common.c rename to Source/pg_dump_dll/pg_dump_10/common.c diff --git a/pg_dump_dll/pg_dump_10/compress_io.c b/Source/pg_dump_dll/pg_dump_10/compress_io.c similarity index 100% rename from pg_dump_dll/pg_dump_10/compress_io.c rename to Source/pg_dump_dll/pg_dump_10/compress_io.c diff --git a/pg_dump_dll/pg_dump_10/compress_io.h b/Source/pg_dump_dll/pg_dump_10/compress_io.h similarity index 100% rename from pg_dump_dll/pg_dump_10/compress_io.h rename to Source/pg_dump_dll/pg_dump_10/compress_io.h diff --git a/pg_dump_dll/pg_dump_10/dumputils.c b/Source/pg_dump_dll/pg_dump_10/dumputils.c similarity index 100% rename from pg_dump_dll/pg_dump_10/dumputils.c rename to Source/pg_dump_dll/pg_dump_10/dumputils.c diff --git a/pg_dump_dll/pg_dump_10/dumputils.h b/Source/pg_dump_dll/pg_dump_10/dumputils.h similarity index 100% rename from pg_dump_dll/pg_dump_10/dumputils.h rename to Source/pg_dump_dll/pg_dump_10/dumputils.h diff --git a/pg_dump_dll/pg_dump_10/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_10/mi_global_pwd.c similarity index 100% rename from pg_dump_dll/pg_dump_10/mi_global_pwd.c rename to Source/pg_dump_dll/pg_dump_10/mi_global_pwd.c diff --git a/pg_dump_dll/pg_dump_10/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_10/mi_global_pwd.h similarity index 100% rename from pg_dump_dll/pg_dump_10/mi_global_pwd.h rename to Source/pg_dump_dll/pg_dump_10/mi_global_pwd.h diff --git a/pg_dump_dll/pg_dump_10/nls.mk b/Source/pg_dump_dll/pg_dump_10/nls.mk similarity index 100% rename from pg_dump_dll/pg_dump_10/nls.mk rename to Source/pg_dump_dll/pg_dump_10/nls.mk diff --git a/pg_dump_dll/pg_dump_10/parallel.c b/Source/pg_dump_dll/pg_dump_10/parallel.c similarity index 100% rename from pg_dump_dll/pg_dump_10/parallel.c rename to Source/pg_dump_dll/pg_dump_10/parallel.c diff --git a/pg_dump_dll/pg_dump_10/parallel.h b/Source/pg_dump_dll/pg_dump_10/parallel.h similarity index 100% rename from pg_dump_dll/pg_dump_10/parallel.h rename to Source/pg_dump_dll/pg_dump_10/parallel.h diff --git a/pg_dump_dll/pg_dump_10/pg_backup.h b/Source/pg_dump_dll/pg_dump_10/pg_backup.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup.h rename to Source/pg_dump_dll/pg_dump_10/pg_backup.h diff --git a/pg_dump_dll/pg_dump_10/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_archiver.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_archiver.h rename to Source/pg_dump_dll/pg_dump_10/pg_backup_archiver.h diff --git a/pg_dump_dll/pg_dump_10/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_custom.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_custom.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_custom.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_db.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_db.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_db.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_db.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_db.h rename to Source/pg_dump_dll/pg_dump_10/pg_backup_db.h diff --git a/pg_dump_dll/pg_dump_10/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_directory.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_directory.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_directory.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_null.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_null.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_null.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_tar.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_tar.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_tar.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_tar.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_tar.h rename to Source/pg_dump_dll/pg_dump_10/pg_backup_tar.h diff --git a/pg_dump_dll/pg_dump_10/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_10/pg_backup_utils.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_utils.c rename to Source/pg_dump_dll/pg_dump_10/pg_backup_utils.c diff --git a/pg_dump_dll/pg_dump_10/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_10/pg_backup_utils.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_backup_utils.h rename to Source/pg_dump_dll/pg_dump_10/pg_backup_utils.h diff --git a/pg_dump_dll/pg_dump_10/pg_dump.c b/Source/pg_dump_dll/pg_dump_10/pg_dump.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_dump.c rename to Source/pg_dump_dll/pg_dump_10/pg_dump.c diff --git a/pg_dump_dll/pg_dump_10/pg_dump.h b/Source/pg_dump_dll/pg_dump_10/pg_dump.h similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_dump.h rename to Source/pg_dump_dll/pg_dump_10/pg_dump.h diff --git a/pg_dump_dll/pg_dump_10/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_10/pg_dump_dll.h rename to Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h index dc2a263..773eaf1 100644 --- a/pg_dump_dll/pg_dump_10/pg_dump_dll.h +++ b/Source/pg_dump_dll/pg_dump_10/pg_dump_dll.h @@ -1,79 +1,79 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - - -__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); - -int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - - //prepare argv array - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + + +__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); + +int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + + //prepare argv array + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_10/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_10/pg_dump_sort.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_dump_sort.c rename to Source/pg_dump_dll/pg_dump_10/pg_dump_sort.c diff --git a/pg_dump_dll/pg_dump_10/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_10/pg_dumpall.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_dumpall.c rename to Source/pg_dump_dll/pg_dump_10/pg_dumpall.c diff --git a/pg_dump_dll/pg_dump_10/pg_restore.c b/Source/pg_dump_dll/pg_dump_10/pg_restore.c similarity index 100% rename from pg_dump_dll/pg_dump_10/pg_restore.c rename to Source/pg_dump_dll/pg_dump_10/pg_restore.c diff --git a/pg_dump_dll/pg_dump_13/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_13/pg_restore_dll.h rename to Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h index a484ee1..8bc8bcd 100644 --- a/pg_dump_dll/pg_dump_13/pg_restore_dll.h +++ b/Source/pg_dump_dll/pg_dump_10/pg_restore_dll.h @@ -1,77 +1,77 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - -__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers - -int v3_restore (char * app_exe, char * err_file, char * params) -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + +__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers + +int v3_restore (char * app_exe, char * err_file, char * params) +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_10/win32ver.rc b/Source/pg_dump_dll/pg_dump_10/win32ver.rc similarity index 100% rename from pg_dump_dll/pg_dump_10/win32ver.rc rename to Source/pg_dump_dll/pg_dump_10/win32ver.rc diff --git a/pg_dump_dll/pg_dump_12/Makefile b/Source/pg_dump_dll/pg_dump_12/Makefile similarity index 100% rename from pg_dump_dll/pg_dump_12/Makefile rename to Source/pg_dump_dll/pg_dump_12/Makefile diff --git a/pg_dump_dll/pg_dump_12/common.c b/Source/pg_dump_dll/pg_dump_12/common.c similarity index 100% rename from pg_dump_dll/pg_dump_12/common.c rename to Source/pg_dump_dll/pg_dump_12/common.c diff --git a/pg_dump_dll/pg_dump_12/compress_io.c b/Source/pg_dump_dll/pg_dump_12/compress_io.c similarity index 100% rename from pg_dump_dll/pg_dump_12/compress_io.c rename to Source/pg_dump_dll/pg_dump_12/compress_io.c diff --git a/pg_dump_dll/pg_dump_12/compress_io.h b/Source/pg_dump_dll/pg_dump_12/compress_io.h similarity index 100% rename from pg_dump_dll/pg_dump_12/compress_io.h rename to Source/pg_dump_dll/pg_dump_12/compress_io.h diff --git a/pg_dump_dll/pg_dump_12/dumputils.c b/Source/pg_dump_dll/pg_dump_12/dumputils.c similarity index 100% rename from pg_dump_dll/pg_dump_12/dumputils.c rename to Source/pg_dump_dll/pg_dump_12/dumputils.c diff --git a/pg_dump_dll/pg_dump_12/dumputils.h b/Source/pg_dump_dll/pg_dump_12/dumputils.h similarity index 100% rename from pg_dump_dll/pg_dump_12/dumputils.h rename to Source/pg_dump_dll/pg_dump_12/dumputils.h diff --git a/pg_dump_dll/pg_dump_12/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_12/mi_global_pwd.c similarity index 100% rename from pg_dump_dll/pg_dump_12/mi_global_pwd.c rename to Source/pg_dump_dll/pg_dump_12/mi_global_pwd.c diff --git a/pg_dump_dll/pg_dump_12/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_12/mi_global_pwd.h similarity index 100% rename from pg_dump_dll/pg_dump_12/mi_global_pwd.h rename to Source/pg_dump_dll/pg_dump_12/mi_global_pwd.h diff --git a/pg_dump_dll/pg_dump_12/nls.mk b/Source/pg_dump_dll/pg_dump_12/nls.mk similarity index 100% rename from pg_dump_dll/pg_dump_12/nls.mk rename to Source/pg_dump_dll/pg_dump_12/nls.mk diff --git a/pg_dump_dll/pg_dump_12/parallel.c b/Source/pg_dump_dll/pg_dump_12/parallel.c similarity index 100% rename from pg_dump_dll/pg_dump_12/parallel.c rename to Source/pg_dump_dll/pg_dump_12/parallel.c diff --git a/pg_dump_dll/pg_dump_12/parallel.h b/Source/pg_dump_dll/pg_dump_12/parallel.h similarity index 100% rename from pg_dump_dll/pg_dump_12/parallel.h rename to Source/pg_dump_dll/pg_dump_12/parallel.h diff --git a/pg_dump_dll/pg_dump_12/pg_backup.h b/Source/pg_dump_dll/pg_dump_12/pg_backup.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup.h rename to Source/pg_dump_dll/pg_dump_12/pg_backup.h diff --git a/pg_dump_dll/pg_dump_12/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_archiver.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_archiver.h rename to Source/pg_dump_dll/pg_dump_12/pg_backup_archiver.h diff --git a/pg_dump_dll/pg_dump_12/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_custom.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_custom.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_custom.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_db.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_db.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_db.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_db.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_db.h rename to Source/pg_dump_dll/pg_dump_12/pg_backup_db.h diff --git a/pg_dump_dll/pg_dump_12/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_directory.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_directory.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_directory.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_null.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_null.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_null.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_tar.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_tar.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_tar.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_tar.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_tar.h rename to Source/pg_dump_dll/pg_dump_12/pg_backup_tar.h diff --git a/pg_dump_dll/pg_dump_12/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_12/pg_backup_utils.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_utils.c rename to Source/pg_dump_dll/pg_dump_12/pg_backup_utils.c diff --git a/pg_dump_dll/pg_dump_12/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_12/pg_backup_utils.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_backup_utils.h rename to Source/pg_dump_dll/pg_dump_12/pg_backup_utils.h diff --git a/pg_dump_dll/pg_dump_12/pg_dump.c b/Source/pg_dump_dll/pg_dump_12/pg_dump.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_dump.c rename to Source/pg_dump_dll/pg_dump_12/pg_dump.c diff --git a/pg_dump_dll/pg_dump_12/pg_dump.h b/Source/pg_dump_dll/pg_dump_12/pg_dump.h similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_dump.h rename to Source/pg_dump_dll/pg_dump_12/pg_dump.h diff --git a/pg_dump_dll/pg_dump_13/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_13/pg_dump_dll.h rename to Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h index dc2a263..773eaf1 100644 --- a/pg_dump_dll/pg_dump_13/pg_dump_dll.h +++ b/Source/pg_dump_dll/pg_dump_12/pg_dump_dll.h @@ -1,79 +1,79 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - - -__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); - -int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - - //prepare argv array - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + + +__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); + +int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + + //prepare argv array + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_12/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_12/pg_dump_sort.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_dump_sort.c rename to Source/pg_dump_dll/pg_dump_12/pg_dump_sort.c diff --git a/pg_dump_dll/pg_dump_12/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_12/pg_dumpall.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_dumpall.c rename to Source/pg_dump_dll/pg_dump_12/pg_dumpall.c diff --git a/pg_dump_dll/pg_dump_12/pg_restore.c b/Source/pg_dump_dll/pg_dump_12/pg_restore.c similarity index 100% rename from pg_dump_dll/pg_dump_12/pg_restore.c rename to Source/pg_dump_dll/pg_dump_12/pg_restore.c diff --git a/pg_dump_dll/pg_dump_10/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_10/pg_restore_dll.h rename to Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h index a484ee1..8bc8bcd 100644 --- a/pg_dump_dll/pg_dump_10/pg_restore_dll.h +++ b/Source/pg_dump_dll/pg_dump_12/pg_restore_dll.h @@ -1,77 +1,77 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - -__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers - -int v3_restore (char * app_exe, char * err_file, char * params) -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + +__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers + +int v3_restore (char * app_exe, char * err_file, char * params) +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_12/win32ver.rc b/Source/pg_dump_dll/pg_dump_12/win32ver.rc similarity index 100% rename from pg_dump_dll/pg_dump_12/win32ver.rc rename to Source/pg_dump_dll/pg_dump_12/win32ver.rc diff --git a/pg_dump_dll/pg_dump_13/Makefile b/Source/pg_dump_dll/pg_dump_13/Makefile similarity index 100% rename from pg_dump_dll/pg_dump_13/Makefile rename to Source/pg_dump_dll/pg_dump_13/Makefile diff --git a/pg_dump_dll/pg_dump_13/common.c b/Source/pg_dump_dll/pg_dump_13/common.c similarity index 100% rename from pg_dump_dll/pg_dump_13/common.c rename to Source/pg_dump_dll/pg_dump_13/common.c diff --git a/pg_dump_dll/pg_dump_13/compress_io.c b/Source/pg_dump_dll/pg_dump_13/compress_io.c similarity index 100% rename from pg_dump_dll/pg_dump_13/compress_io.c rename to Source/pg_dump_dll/pg_dump_13/compress_io.c diff --git a/pg_dump_dll/pg_dump_13/compress_io.h b/Source/pg_dump_dll/pg_dump_13/compress_io.h similarity index 100% rename from pg_dump_dll/pg_dump_13/compress_io.h rename to Source/pg_dump_dll/pg_dump_13/compress_io.h diff --git a/pg_dump_dll/pg_dump_13/dumputils.c b/Source/pg_dump_dll/pg_dump_13/dumputils.c similarity index 100% rename from pg_dump_dll/pg_dump_13/dumputils.c rename to Source/pg_dump_dll/pg_dump_13/dumputils.c diff --git a/pg_dump_dll/pg_dump_13/dumputils.h b/Source/pg_dump_dll/pg_dump_13/dumputils.h similarity index 100% rename from pg_dump_dll/pg_dump_13/dumputils.h rename to Source/pg_dump_dll/pg_dump_13/dumputils.h diff --git a/pg_dump_dll/pg_dump_13/mi_global_pwd.c b/Source/pg_dump_dll/pg_dump_13/mi_global_pwd.c similarity index 100% rename from pg_dump_dll/pg_dump_13/mi_global_pwd.c rename to Source/pg_dump_dll/pg_dump_13/mi_global_pwd.c diff --git a/pg_dump_dll/pg_dump_13/mi_global_pwd.h b/Source/pg_dump_dll/pg_dump_13/mi_global_pwd.h similarity index 100% rename from pg_dump_dll/pg_dump_13/mi_global_pwd.h rename to Source/pg_dump_dll/pg_dump_13/mi_global_pwd.h diff --git a/pg_dump_dll/pg_dump_13/nls.mk b/Source/pg_dump_dll/pg_dump_13/nls.mk similarity index 100% rename from pg_dump_dll/pg_dump_13/nls.mk rename to Source/pg_dump_dll/pg_dump_13/nls.mk diff --git a/pg_dump_dll/pg_dump_13/parallel.c b/Source/pg_dump_dll/pg_dump_13/parallel.c similarity index 100% rename from pg_dump_dll/pg_dump_13/parallel.c rename to Source/pg_dump_dll/pg_dump_13/parallel.c diff --git a/pg_dump_dll/pg_dump_13/parallel.h b/Source/pg_dump_dll/pg_dump_13/parallel.h similarity index 100% rename from pg_dump_dll/pg_dump_13/parallel.h rename to Source/pg_dump_dll/pg_dump_13/parallel.h diff --git a/pg_dump_dll/pg_dump_13/pg_backup.h b/Source/pg_dump_dll/pg_dump_13/pg_backup.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup.h rename to Source/pg_dump_dll/pg_dump_13/pg_backup.h diff --git a/pg_dump_dll/pg_dump_13/pg_backup_archiver.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_archiver.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_archiver.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_archiver.h rename to Source/pg_dump_dll/pg_dump_13/pg_backup_archiver.h diff --git a/pg_dump_dll/pg_dump_13/pg_backup_custom.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_custom.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_custom.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_custom.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_db.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_db.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_db.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_db.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_db.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_db.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_db.h rename to Source/pg_dump_dll/pg_dump_13/pg_backup_db.h diff --git a/pg_dump_dll/pg_dump_13/pg_backup_directory.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_directory.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_directory.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_directory.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_null.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_null.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_null.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_null.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_tar.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_tar.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_tar.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_tar.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_tar.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_tar.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_tar.h rename to Source/pg_dump_dll/pg_dump_13/pg_backup_tar.h diff --git a/pg_dump_dll/pg_dump_13/pg_backup_utils.c b/Source/pg_dump_dll/pg_dump_13/pg_backup_utils.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_utils.c rename to Source/pg_dump_dll/pg_dump_13/pg_backup_utils.c diff --git a/pg_dump_dll/pg_dump_13/pg_backup_utils.h b/Source/pg_dump_dll/pg_dump_13/pg_backup_utils.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_backup_utils.h rename to Source/pg_dump_dll/pg_dump_13/pg_backup_utils.h diff --git a/pg_dump_dll/pg_dump_13/pg_dump.c b/Source/pg_dump_dll/pg_dump_13/pg_dump.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_dump.c rename to Source/pg_dump_dll/pg_dump_13/pg_dump.c diff --git a/pg_dump_dll/pg_dump_13/pg_dump.h b/Source/pg_dump_dll/pg_dump_13/pg_dump.h similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_dump.h rename to Source/pg_dump_dll/pg_dump_13/pg_dump.h diff --git a/pg_dump_dll/pg_dump_12/pg_dump_dll.h b/Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_12/pg_dump_dll.h rename to Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h index dc2a263..773eaf1 100644 --- a/pg_dump_dll/pg_dump_12/pg_dump_dll.h +++ b/Source/pg_dump_dll/pg_dump_13/pg_dump_dll.h @@ -1,79 +1,79 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - - -__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); - -int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - - //prepare argv array - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + + +__declspec(dllexport) int v3_dump (char * app_exe, char * err_file, char * params); + +int v3_dump (char * app_exe, char * err_file, char * params)//this NULL ended array of pointers +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + + //prepare argv array + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_13/pg_dump_sort.c b/Source/pg_dump_dll/pg_dump_13/pg_dump_sort.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_dump_sort.c rename to Source/pg_dump_dll/pg_dump_13/pg_dump_sort.c diff --git a/pg_dump_dll/pg_dump_13/pg_dumpall.c b/Source/pg_dump_dll/pg_dump_13/pg_dumpall.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_dumpall.c rename to Source/pg_dump_dll/pg_dump_13/pg_dumpall.c diff --git a/pg_dump_dll/pg_dump_13/pg_restore.c b/Source/pg_dump_dll/pg_dump_13/pg_restore.c similarity index 100% rename from pg_dump_dll/pg_dump_13/pg_restore.c rename to Source/pg_dump_dll/pg_dump_13/pg_restore.c diff --git a/pg_dump_dll/pg_dump_12/pg_restore_dll.h b/Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h similarity index 93% rename from pg_dump_dll/pg_dump_12/pg_restore_dll.h rename to Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h index a484ee1..8bc8bcd 100644 --- a/pg_dump_dll/pg_dump_12/pg_restore_dll.h +++ b/Source/pg_dump_dll/pg_dump_13/pg_restore_dll.h @@ -1,77 +1,77 @@ -#include "mi_global_pwd.h" - -//app_exe - name of the host application -//err_file - name of the file, to which stderr will be reassigned - -__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers - -int v3_restore (char * app_exe, char * err_file, char * params) -{ - char ** mas; - int cnt = 0; - int c = 1; //app_exe will be the first parameter - char ** arr; - char ** arr2; - int r; - - //count params number - arr = (char **) params; - while (*arr) - { - c++; - arr++; - } - - mas = (char ** ) malloc(c * sizeof(char *)); - - arr = (char **) params; - arr2 = mas; - - * arr2 = strdup(app_exe); - arr2++; - cnt++; - - - while (*arr) - { - *arr2 = strdup(*arr); - arr2++; - cnt++; - arr++; - } - - log_stream = NULL; - - if (err_file) - { - log_stream = freopen(err_file, "w", stderr); - if (!log_stream) - { - r = 3; - goto _end; - } - } - - - r = main(cnt, mas); - -_end: - //clear grabbed memory - arr2 = mas; - while(cnt--) - { - free(*arr2); - arr2 ++; - } - free(mas); - - //closing file - if(log_stream) - { - fflush(stderr); - fclose(stderr); - freopen("CON", "w", stderr); - } - - return r; -}; +#include "mi_global_pwd.h" + +//app_exe - name of the host application +//err_file - name of the file, to which stderr will be reassigned + +__declspec(dllexport) int v3_restore (char * app_exe, char * err_file, char * params); //this NULL ended array of pointers + +int v3_restore (char * app_exe, char * err_file, char * params) +{ + char ** mas; + int cnt = 0; + int c = 1; //app_exe will be the first parameter + char ** arr; + char ** arr2; + int r; + + //count params number + arr = (char **) params; + while (*arr) + { + c++; + arr++; + } + + mas = (char ** ) malloc(c * sizeof(char *)); + + arr = (char **) params; + arr2 = mas; + + * arr2 = strdup(app_exe); + arr2++; + cnt++; + + + while (*arr) + { + *arr2 = strdup(*arr); + arr2++; + cnt++; + arr++; + } + + log_stream = NULL; + + if (err_file) + { + log_stream = freopen(err_file, "w", stderr); + if (!log_stream) + { + r = 3; + goto _end; + } + } + + + r = main(cnt, mas); + +_end: + //clear grabbed memory + arr2 = mas; + while(cnt--) + { + free(*arr2); + arr2 ++; + } + free(mas); + + //closing file + if(log_stream) + { + fflush(stderr); + fclose(stderr); + freopen("CON", "w", stderr); + } + + return r; +}; diff --git a/pg_dump_dll/pg_dump_13/win32ver.rc b/Source/pg_dump_dll/pg_dump_13/win32ver.rc similarity index 100% rename from pg_dump_dll/pg_dump_13/win32ver.rc rename to Source/pg_dump_dll/pg_dump_13/win32ver.rc