mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Implement connecting via named pipe. Code contributed by gabylastar, minor modifications by me. Fixes issue #520.
This commit is contained in:
@ -34,6 +34,10 @@ const
|
|||||||
// Used for simulating a TTreeNode which has subnodes
|
// Used for simulating a TTreeNode which has subnodes
|
||||||
DUMMY_NODE_TEXT : String = 'Dummy node, should never be visible';
|
DUMMY_NODE_TEXT : String = 'Dummy node, should never be visible';
|
||||||
|
|
||||||
|
// Connection types, used on session dialog
|
||||||
|
NETTYPE_TCPIP = 0;
|
||||||
|
NETTYPE_NAMEDPIPE = 1;
|
||||||
|
|
||||||
// Various names of registry variables
|
// Various names of registry variables
|
||||||
// User-changable variables have a default value
|
// User-changable variables have a default value
|
||||||
// Note: Color values are in HEX format: $00BBGGRR
|
// Note: Color values are in HEX format: $00BBGGRR
|
||||||
@ -112,6 +116,8 @@ const
|
|||||||
DEFAULT_PASSWORD = '';
|
DEFAULT_PASSWORD = '';
|
||||||
REGNAME_PORT = 'Port';
|
REGNAME_PORT = 'Port';
|
||||||
DEFAULT_PORT = 3306;
|
DEFAULT_PORT = 3306;
|
||||||
|
REGNAME_NETTYPE = 'NetType';
|
||||||
|
DEFAULT_NETTYPE = NETTYPE_TCPIP;
|
||||||
REGNAME_TIMEOUT = 'Timeout';
|
REGNAME_TIMEOUT = 'Timeout';
|
||||||
DEFAULT_TIMEOUT = 30;
|
DEFAULT_TIMEOUT = 30;
|
||||||
REGNAME_COMPRESSED = 'Compressed';
|
REGNAME_COMPRESSED = 'Compressed';
|
||||||
|
@ -112,6 +112,7 @@ type
|
|||||||
FProtocol: string;
|
FProtocol: string;
|
||||||
FHostName: string;
|
FHostName: string;
|
||||||
FPort: Integer;
|
FPort: Integer;
|
||||||
|
FSocketName: string;
|
||||||
FDatabase: WideString;
|
FDatabase: WideString;
|
||||||
FUser: string;
|
FUser: string;
|
||||||
FPassword: string;
|
FPassword: string;
|
||||||
@ -219,6 +220,7 @@ type
|
|||||||
property Protocol: string read FProtocol write FProtocol;
|
property Protocol: string read FProtocol write FProtocol;
|
||||||
property HostName: string read FHostName write FHostName;
|
property HostName: string read FHostName write FHostName;
|
||||||
property Port: Integer read FPort write FPort default 0;
|
property Port: Integer read FPort write FPort default 0;
|
||||||
|
property SocketName: string read FSocketName write FSocketName;
|
||||||
property Database: WideString read FDatabase write FDatabase;
|
property Database: WideString read FDatabase write FDatabase;
|
||||||
property User: string read FUser write FUser;
|
property User: string read FUser write FUser;
|
||||||
property Password: string read FPassword write FPassword;
|
property Password: string read FPassword write FPassword;
|
||||||
@ -482,13 +484,13 @@ function TZConnection.ConstructURL(const UserName, Password: string): string;
|
|||||||
begin
|
begin
|
||||||
if Port <> 0 then
|
if Port <> 0 then
|
||||||
begin
|
begin
|
||||||
Result := Format('zdbc:%s://%s:%d/%s?UID=%s;PWD=%s', [FProtocol, FHostName,
|
Result := Format('zdbc:%s://%s:%d@%s/%s?UID=%s;PWD=%s', [FProtocol, FHostName,
|
||||||
FPort, FDatabase, UserName, Password]);
|
FPort, SocketName, FDatabase, UserName, Password]);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Result := Format('zdbc:%s://%s/%s?UID=%s;PWD=%s', [FProtocol, FHostName,
|
Result := Format('zdbc:%s://%s@%s/%s?UID=%s;PWD=%s', [FProtocol, FHostName,
|
||||||
FDatabase, UserName, Password]);
|
SocketName, FDatabase, UserName, Password]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZASAPlainDriver;
|
PlainDriver: IZASAPlainDriver;
|
||||||
const HostName: string; Port: Integer; const Database: string;
|
const HostName: string; Port: Integer; const SocketName: string; const Database: string;
|
||||||
const User: string; const Password: string; Info: TStrings);
|
const User: string; const Password: string; Info: TStrings);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
@ -172,14 +172,15 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
PlainDriver: IZASAPlainDriver;
|
PlainDriver: IZASAPlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
Result := TZASAConnection.Create(Self, Url, PlainDriver, HostName, Port,
|
Result := TZASAConnection.Create(Self, Url, PlainDriver, HostName, Port, SocketName,
|
||||||
Database, UserName, Password, TempInfo);
|
Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
@ -334,10 +335,10 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZASAConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZASAConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZASAPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZASAPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database, User, Password: string; Info: TStrings);
|
const Database, User, Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZASADatabaseMetadata.Create(Self, Url, Info));
|
TZASADatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
FPlainDriver := PlainDriver;
|
FPlainDriver := PlainDriver;
|
||||||
|
@ -101,7 +101,7 @@ type
|
|||||||
procedure StartTransaction; virtual;
|
procedure StartTransaction; virtual;
|
||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
|
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -175,19 +175,20 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
Protocol: string;
|
Protocol: string;
|
||||||
PlainDriver: IZPlainDriver;
|
PlainDriver: IZPlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
Protocol := ResolveConnectionProtocol(Url, GetSupportedProtocols);
|
Protocol := ResolveConnectionProtocol(Url, GetSupportedProtocols);
|
||||||
if Protocol = FAdoPlainDriver.GetProtocol then
|
if Protocol = FAdoPlainDriver.GetProtocol then
|
||||||
PlainDriver := FAdoPlainDriver;
|
PlainDriver := FAdoPlainDriver;
|
||||||
PlainDriver.Initialize;
|
PlainDriver.Initialize;
|
||||||
Result := TZAdoConnection.Create(Self, Url, PlainDriver, HostName,
|
Result := TZAdoConnection.Create(Self, Url, PlainDriver, HostName,
|
||||||
Port, Database, UserName, Password, TempInfo);
|
Port, SocketName, Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
end;
|
end;
|
||||||
@ -224,12 +225,12 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZAdoConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZAdoConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
FAdoConnection := CoConnection.Create;
|
FAdoConnection := CoConnection.Create;
|
||||||
FPLainDriver := PlainDriver;
|
FPLainDriver := PlainDriver;
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZAdoDatabaseMetadata.Create(Self, Url, Info));
|
TZAdoDatabaseMetadata.Create(Self, Url, Info));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@ type
|
|||||||
FDriver: IZDriver;
|
FDriver: IZDriver;
|
||||||
FHostName: string;
|
FHostName: string;
|
||||||
FPort: Integer;
|
FPort: Integer;
|
||||||
|
FSocketName: string;
|
||||||
FDatabase: string;
|
FDatabase: string;
|
||||||
FUser: string;
|
FUser: string;
|
||||||
FPassword: string;
|
FPassword: string;
|
||||||
@ -114,7 +115,7 @@ type
|
|||||||
FMetadata: TContainedObject;
|
FMetadata: TContainedObject;
|
||||||
protected
|
protected
|
||||||
constructor Create(Driver: IZDriver; const Url: string; const HostName: string;
|
constructor Create(Driver: IZDriver; const Url: string; const HostName: string;
|
||||||
Port: Integer; const Database: string; const User: string; const Password: string;
|
Port: Integer; const SocketName: string; const Database: string; const User: string; const Password: string;
|
||||||
Info: TStrings; Metadata: TContainedObject);
|
Info: TStrings; Metadata: TContainedObject);
|
||||||
procedure RaiseUnsupportedException;
|
procedure RaiseUnsupportedException;
|
||||||
|
|
||||||
@ -128,6 +129,7 @@ type
|
|||||||
property Driver: IZDriver read FDriver write FDriver;
|
property Driver: IZDriver read FDriver write FDriver;
|
||||||
property HostName: string read FHostName write FHostName;
|
property HostName: string read FHostName write FHostName;
|
||||||
property Port: Integer read FPort write FPort;
|
property Port: Integer read FPort write FPort;
|
||||||
|
property SocketName: string read FSocketName write FSocketName;
|
||||||
property Database: string read FDatabase write FDatabase;
|
property Database: string read FDatabase write FDatabase;
|
||||||
property User: string read FUser write FUser;
|
property User: string read FUser write FUser;
|
||||||
property Password: string read FPassword write FPassword;
|
property Password: string read FPassword write FPassword;
|
||||||
@ -402,12 +404,13 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZAbstractConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZAbstractConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
const HostName: string; Port: Integer; const Database: string; const User: string;
|
const HostName: string; Port: Integer; const SocketName: string; const Database: string; const User: string;
|
||||||
const Password: string; Info: TStrings; Metadata: TContainedObject);
|
const Password: string; Info: TStrings; Metadata: TContainedObject);
|
||||||
begin
|
begin
|
||||||
FDriver := Driver;
|
FDriver := Driver;
|
||||||
FHostName := HostName;
|
FHostName := HostName;
|
||||||
FPort := Port;
|
FPort := Port;
|
||||||
|
FSocketName := SocketName;
|
||||||
FDatabase := Database;
|
FDatabase := Database;
|
||||||
FMetadata := Metadata;
|
FMetadata := Metadata;
|
||||||
|
|
||||||
|
@ -184,12 +184,13 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
Protocol: string;
|
Protocol: string;
|
||||||
PlainDriver: IZDBLibPlainDriver;
|
PlainDriver: IZDBLibPlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
Protocol := ResolveConnectionProtocol(Url, GetSupportedProtocols);
|
Protocol := ResolveConnectionProtocol(Url, GetSupportedProtocols);
|
||||||
if Protocol = FMSSqlPlainDriver.GetProtocol then
|
if Protocol = FMSSqlPlainDriver.GetProtocol then
|
||||||
@ -269,7 +270,7 @@ begin
|
|||||||
Metadata := TZSybaseDatabaseMetadata.Create(Self, Url, Info)
|
Metadata := TZSybaseDatabaseMetadata.Create(Self, Url, Info)
|
||||||
else Metadata := nil;
|
else Metadata := nil;
|
||||||
|
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
Metadata);
|
Metadata);
|
||||||
|
|
||||||
FHandle := nil;
|
FHandle := nil;
|
||||||
|
@ -199,11 +199,12 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
PlainDriver: IZInterbasePlainDriver;
|
PlainDriver: IZInterbasePlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
Result := TZInterbase6Connection.Create(Self, Url, PlainDriver, HostName,
|
Result := TZInterbase6Connection.Create(Self, Url, PlainDriver, HostName,
|
||||||
@ -397,7 +398,7 @@ var
|
|||||||
ClientCodePage: string;
|
ClientCodePage: string;
|
||||||
UserSetDialect: string;
|
UserSetDialect: string;
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZInterbase6DatabaseMetadata.Create(Self, Url, Info));
|
TZInterbase6DatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
FPlainDriver := PlainDriver;
|
FPlainDriver := PlainDriver;
|
||||||
|
@ -111,7 +111,7 @@ type
|
|||||||
FAnsiMode: Boolean;
|
FAnsiMode: Boolean;
|
||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZMySQLPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZMySQLPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
@ -208,20 +208,20 @@ end;
|
|||||||
function TZMySQLDriver.Connect(const Url: string; Info: TStrings): IZConnection;
|
function TZMySQLDriver.Connect(const Url: string; Info: TStrings): IZConnection;
|
||||||
var
|
var
|
||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password, SocketName: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
PlainDriver: IZMySQLPlainDriver;
|
PlainDriver: IZMySQLPlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
// PATCH ADDED BY tohenk
|
// PATCH ADDED BY tohenk
|
||||||
if PlainDriver <> nil then
|
if PlainDriver <> nil then
|
||||||
PlainDriver.BuildArguments(TempInfo);
|
PlainDriver.BuildArguments(TempInfo);
|
||||||
Result := TZMySQLConnection.Create(Self, Url, PlainDriver, HostName, Port,
|
Result := TZMySQLConnection.Create(Self, Url, PlainDriver, HostName, Port,
|
||||||
Database, UserName, Password, TempInfo);
|
SocketName, Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
end;
|
end;
|
||||||
@ -350,10 +350,10 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZMySQLConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZMySQLConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZMySQLPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZMySQLPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database, User, Password: string; Info: TStrings);
|
const Database, User, Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZMySQLDatabaseMetadata.Create(Self, Url, Info));
|
TZMySQLDatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
{ Sets a default properties }
|
{ Sets a default properties }
|
||||||
@ -429,7 +429,7 @@ begin
|
|||||||
|
|
||||||
{ Connect to MySQL database. }
|
{ Connect to MySQL database. }
|
||||||
if FPlainDriver.RealConnect(FHandle, PChar(HostName), PChar(User),
|
if FPlainDriver.RealConnect(FHandle, PChar(HostName), PChar(User),
|
||||||
PChar(Password), PChar(Database), Port, nil,
|
PChar(Password), PChar(Database), Port, PChar(SocketName),
|
||||||
ClientFlag) = nil then
|
ClientFlag) = nil then
|
||||||
begin
|
begin
|
||||||
CheckMySQLError(FPlainDriver, FHandle, lcConnect, LogMessage);
|
CheckMySQLError(FPlainDriver, FHandle, lcConnect, LogMessage);
|
||||||
|
@ -183,12 +183,13 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
Hostname, UserName, Password: string;
|
Hostname, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
begin
|
begin
|
||||||
inherited Create(Connection, Url, Info);
|
inherited Create(Connection, Url, Info);
|
||||||
|
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, FDatabase,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, FDatabase,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
|
@ -115,7 +115,7 @@ type
|
|||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZOraclePlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZOraclePlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
@ -198,14 +198,15 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
PlainDriver: IZOraclePlainDriver;
|
PlainDriver: IZOraclePlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
Result := TZOracleConnection.Create(Self, Url, PlainDriver, HostName, Port,
|
Result := TZOracleConnection.Create(Self, Url, PlainDriver, HostName, Port, SocketName,
|
||||||
Database, UserName, Password, TempInfo);
|
Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
@ -293,10 +294,10 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZOracleConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZOracleConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZOraclePlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZOraclePlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database, User, Password: string; Info: TStrings);
|
const Database, User, Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZOracleDatabaseMetadata.Create(Self, Url, Info));
|
TZOracleDatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
{ Sets a default properties }
|
{ Sets a default properties }
|
||||||
|
@ -228,12 +228,13 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, UserName, Password: string;
|
HostName, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
begin
|
begin
|
||||||
inherited Create(Connection, Url, Info);
|
inherited Create(Connection, Url, Info);
|
||||||
|
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, FDatabase,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, FDatabase,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
|
@ -159,7 +159,7 @@ TZPgCharactersetType = (
|
|||||||
procedure LoadServerVersion;
|
procedure LoadServerVersion;
|
||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZPostgreSQLPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZPostgreSQLPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
@ -253,15 +253,16 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
PlainDriver: IZPostgreSQLPlainDriver;
|
PlainDriver: IZPostgreSQLPlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
Result := TZPostgreSQLConnection.Create(Self, Url, PlainDriver, HostName,
|
Result := TZPostgreSQLConnection.Create(Self, Url, PlainDriver, HostName,
|
||||||
Port, Database, UserName, Password, TempInfo);
|
Port, SocketName, Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
end;
|
end;
|
||||||
@ -353,10 +354,10 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZPostgreSQLConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZPostgreSQLConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZPostgreSQLPlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZPostgreSQLPlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database, User, Password: string; Info: TStrings);
|
const Database, User, Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZPostgreSQLDatabaseMetadata.Create(Self, Url, Info));
|
TZPostgreSQLDatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
{ Sets a default PostgreSQL port }
|
{ Sets a default PostgreSQL port }
|
||||||
|
@ -244,12 +244,13 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
Hostname, UserName, Password: string;
|
Hostname, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
begin
|
begin
|
||||||
inherited Create(Connection, Url, Info);
|
inherited Create(Connection, Url, Info);
|
||||||
|
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, FDatabase,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, FDatabase,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
|
@ -105,7 +105,7 @@ type
|
|||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(Driver: IZDriver; const Url: string;
|
constructor Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZSQLitePlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZSQLitePlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database: string; const User: string; const Password: string; Info: TStrings);
|
const Database: string; const User: string; const Password: string; Info: TStrings);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
@ -177,14 +177,15 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, Database, UserName, Password: string;
|
HostName, Database, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
PlainDriver: IZSQLitePlainDriver;
|
PlainDriver: IZSQLitePlainDriver;
|
||||||
begin
|
begin
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
PlainDriver := GetPlainDriver(Url);
|
PlainDriver := GetPlainDriver(Url);
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, Database,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, Database,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
Result := TZSQLiteConnection.Create(Self, Url, PlainDriver, HostName, Port,
|
Result := TZSQLiteConnection.Create(Self, Url, PlainDriver, HostName, Port, SocketName,
|
||||||
Database, UserName, Password, TempInfo);
|
Database, UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
@ -275,10 +276,10 @@ end;
|
|||||||
@param Info a string list with extra connection parameters.
|
@param Info a string list with extra connection parameters.
|
||||||
}
|
}
|
||||||
constructor TZSQLiteConnection.Create(Driver: IZDriver; const Url: string;
|
constructor TZSQLiteConnection.Create(Driver: IZDriver; const Url: string;
|
||||||
PlainDriver: IZSQLitePlainDriver; const HostName: string; Port: Integer;
|
PlainDriver: IZSQLitePlainDriver; const HostName: string; Port: Integer; const SocketName: string;
|
||||||
const Database, User, Password: string; Info: TStrings);
|
const Database, User, Password: string; Info: TStrings);
|
||||||
begin
|
begin
|
||||||
inherited Create(Driver, Url, HostName, Port, Database, User, Password, Info,
|
inherited Create(Driver, Url, HostName, Port, SocketName, Database, User, Password, Info,
|
||||||
TZSQLiteDatabaseMetadata.Create(Self, Url, Info));
|
TZSQLiteDatabaseMetadata.Create(Self, Url, Info));
|
||||||
|
|
||||||
{ Sets a default properties }
|
{ Sets a default properties }
|
||||||
|
@ -228,12 +228,13 @@ var
|
|||||||
TempInfo: TStrings;
|
TempInfo: TStrings;
|
||||||
HostName, UserName, Password: string;
|
HostName, UserName, Password: string;
|
||||||
Port: Integer;
|
Port: Integer;
|
||||||
|
SocketName: string;
|
||||||
begin
|
begin
|
||||||
inherited Create(Connection, Url, Info);
|
inherited Create(Connection, Url, Info);
|
||||||
|
|
||||||
TempInfo := TStringList.Create;
|
TempInfo := TStringList.Create;
|
||||||
try
|
try
|
||||||
ResolveDatabaseUrl(Url, Info, HostName, Port, FDatabase,
|
ResolveDatabaseUrl(Url, Info, HostName, Port, SocketName, FDatabase,
|
||||||
UserName, Password, TempInfo);
|
UserName, Password, TempInfo);
|
||||||
finally
|
finally
|
||||||
TempInfo.Free;
|
TempInfo.Free;
|
||||||
|
@ -84,7 +84,7 @@ function ResolveConnectionProtocol(Url: string;
|
|||||||
@param ResutlInfo a result info parameters.
|
@param ResutlInfo a result info parameters.
|
||||||
}
|
}
|
||||||
procedure ResolveDatabaseUrl(const Url: string; Info: TStrings;
|
procedure ResolveDatabaseUrl(const Url: string; Info: TStrings;
|
||||||
var HostName: string; var Port: Integer; var Database: string;
|
var HostName: string; var Port: Integer; var SocketName: string; var Database: string;
|
||||||
var UserName: string; var Password: string; ResultInfo: TStrings);
|
var UserName: string; var Password: string; ResultInfo: TStrings);
|
||||||
|
|
||||||
{**
|
{**
|
||||||
@ -205,7 +205,7 @@ end;
|
|||||||
@param ResutlInfo a result info parameters.
|
@param ResutlInfo a result info parameters.
|
||||||
}
|
}
|
||||||
procedure ResolveDatabaseUrl(const Url: string; Info: TStrings;
|
procedure ResolveDatabaseUrl(const Url: string; Info: TStrings;
|
||||||
var HostName: string; var Port: Integer; var Database: string;
|
var HostName: string; var Port: Integer; var SocketName: string; var Database: string;
|
||||||
var UserName: string; var Password: string; ResultInfo: TStrings);
|
var UserName: string; var Password: string; ResultInfo: TStrings);
|
||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
@ -220,6 +220,7 @@ begin
|
|||||||
{ Set default values. }
|
{ Set default values. }
|
||||||
HostName := 'localhost';
|
HostName := 'localhost';
|
||||||
Port := 0;
|
Port := 0;
|
||||||
|
SocketName := '';
|
||||||
Database := '';
|
Database := '';
|
||||||
UserName := '';
|
UserName := '';
|
||||||
Password := '';
|
Password := '';
|
||||||
@ -247,12 +248,26 @@ begin
|
|||||||
if Pos(':', Temp) = 1 then
|
if Pos(':', Temp) = 1 then
|
||||||
begin
|
begin
|
||||||
Delete(Temp, 1, 1);
|
Delete(Temp, 1, 1);
|
||||||
|
Index := FirstDelimiter('@?', Temp);
|
||||||
|
if Index = 0 then
|
||||||
Index := FirstDelimiter('/?', Temp);
|
Index := FirstDelimiter('/?', Temp);
|
||||||
if Index = 0 then
|
if Index = 0 then
|
||||||
RaiseException;
|
RaiseException;
|
||||||
|
|
||||||
Port := StrToInt(Copy(Temp, 1, Index - 1));
|
Port := StrToInt(Copy(Temp, 1, Index - 1));
|
||||||
Delete(Temp, 1, Index - 1);
|
Delete(Temp, 1, Index - 1);
|
||||||
|
|
||||||
|
{ Retrieves socket name }
|
||||||
|
if Pos('@', Temp) = 1 then
|
||||||
|
begin
|
||||||
|
Delete(Temp, 1, 1);
|
||||||
|
Index := FirstDelimiter('/?', Temp);
|
||||||
|
if Index = 0 then
|
||||||
|
RaiseException;
|
||||||
|
|
||||||
|
SocketName := Copy(Temp, 1, Index - 1);
|
||||||
|
Delete(Temp, 1, Index - 1);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if Pos('/', Temp) <> 1 then
|
if Pos('/', Temp) <> 1 then
|
||||||
|
@ -4,12 +4,12 @@ object connform: Tconnform
|
|||||||
Top = 129
|
Top = 129
|
||||||
BorderIcons = [biSystemMenu]
|
BorderIcons = [biSystemMenu]
|
||||||
Caption = 'Session manager'
|
Caption = 'Session manager'
|
||||||
ClientHeight = 284
|
ClientHeight = 304
|
||||||
ClientWidth = 456
|
ClientWidth = 456
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Constraints.MaxHeight = 320
|
Constraints.MaxHeight = 340
|
||||||
Constraints.MaxWidth = 800
|
Constraints.MaxWidth = 800
|
||||||
Constraints.MinHeight = 320
|
Constraints.MinHeight = 340
|
||||||
Constraints.MinWidth = 462
|
Constraints.MinWidth = 462
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clWindowText
|
Font.Color = clWindowText
|
||||||
@ -23,13 +23,13 @@ object connform: Tconnform
|
|||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
456
|
456
|
||||||
284)
|
304)
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
object lblHost: TLabel
|
object lblHost: TLabel
|
||||||
Tag = 6
|
Tag = 6
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 76
|
Top = 101
|
||||||
Width = 72
|
Width = 72
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = '&Hostname / IP:'
|
Caption = '&Hostname / IP:'
|
||||||
@ -38,7 +38,7 @@ object connform: Tconnform
|
|||||||
object lblUsername: TLabel
|
object lblUsername: TLabel
|
||||||
Tag = 7
|
Tag = 7
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 100
|
Top = 125
|
||||||
Width = 26
|
Width = 26
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = '&User:'
|
Caption = '&User:'
|
||||||
@ -47,7 +47,7 @@ object connform: Tconnform
|
|||||||
object lblPassword: TLabel
|
object lblPassword: TLabel
|
||||||
Tag = 8
|
Tag = 8
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 124
|
Top = 149
|
||||||
Width = 50
|
Width = 50
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = '&Password:'
|
Caption = '&Password:'
|
||||||
@ -56,7 +56,7 @@ object connform: Tconnform
|
|||||||
object lblPort: TLabel
|
object lblPort: TLabel
|
||||||
Tag = 9
|
Tag = 9
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 148
|
Top = 173
|
||||||
Width = 24
|
Width = 24
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'P&ort:'
|
Caption = 'P&ort:'
|
||||||
@ -65,7 +65,7 @@ object connform: Tconnform
|
|||||||
object lblTimeout: TLabel
|
object lblTimeout: TLabel
|
||||||
Tag = 10
|
Tag = 10
|
||||||
Left = 279
|
Left = 279
|
||||||
Top = 148
|
Top = 173
|
||||||
Width = 42
|
Width = 42
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = '&Timeout:'
|
Caption = '&Timeout:'
|
||||||
@ -83,7 +83,7 @@ object connform: Tconnform
|
|||||||
object lblSeconds: TLabel
|
object lblSeconds: TLabel
|
||||||
Tag = 11
|
Tag = 11
|
||||||
Left = 391
|
Left = 391
|
||||||
Top = 148
|
Top = 173
|
||||||
Width = 39
|
Width = 39
|
||||||
Height = 13
|
Height = 13
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -92,7 +92,7 @@ object connform: Tconnform
|
|||||||
object lblOnlyDBs: TLabel
|
object lblOnlyDBs: TLabel
|
||||||
Tag = 13
|
Tag = 13
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 195
|
Top = 218
|
||||||
Width = 63
|
Width = 63
|
||||||
Height = 13
|
Height = 13
|
||||||
Caption = 'Data&base(s):'
|
Caption = 'Data&base(s):'
|
||||||
@ -101,7 +101,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editHost: TEdit
|
object editHost: TEdit
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 73
|
Top = 98
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -110,7 +110,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editUsername: TEdit
|
object editUsername: TEdit
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 97
|
Top = 122
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -119,7 +119,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editPassword: TEdit
|
object editPassword: TEdit
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 121
|
Top = 146
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 21
|
Height = 21
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -129,7 +129,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editPort: TEdit
|
object editPort: TEdit
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 145
|
Top = 170
|
||||||
Width = 43
|
Width = 43
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
@ -137,7 +137,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editTimeout: TEdit
|
object editTimeout: TEdit
|
||||||
Left = 331
|
Left = 331
|
||||||
Top = 144
|
Top = 169
|
||||||
Width = 51
|
Width = 51
|
||||||
Height = 21
|
Height = 21
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
@ -3005,7 +3005,7 @@ object connform: Tconnform
|
|||||||
object chkCompressed: TCheckBox
|
object chkCompressed: TCheckBox
|
||||||
Tag = 12
|
Tag = 12
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 171
|
Top = 194
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = '&Compressed client/server protocol'
|
Caption = '&Compressed client/server protocol'
|
||||||
@ -3014,7 +3014,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object editOnlyDBs: TTntEdit
|
object editOnlyDBs: TTntEdit
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 192
|
Top = 215
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 21
|
Height = 21
|
||||||
Hint = 'A list of wanted databases, separated by semicolon'
|
Hint = 'A list of wanted databases, separated by semicolon'
|
||||||
@ -3026,7 +3026,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object chkSorted: TCheckBox
|
object chkSorted: TCheckBox
|
||||||
Left = 230
|
Left = 230
|
||||||
Top = 219
|
Top = 242
|
||||||
Width = 215
|
Width = 215
|
||||||
Height = 17
|
Height = 17
|
||||||
Anchors = [akLeft, akTop, akRight]
|
Anchors = [akLeft, akTop, akRight]
|
||||||
@ -3036,7 +3036,7 @@ object connform: Tconnform
|
|||||||
end
|
end
|
||||||
object btnSaveAndConnect: TButton
|
object btnSaveAndConnect: TButton
|
||||||
Left = 139
|
Left = 139
|
||||||
Top = 248
|
Top = 271
|
||||||
Width = 95
|
Width = 95
|
||||||
Height = 25
|
Height = 25
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@ -3048,7 +3048,7 @@ object connform: Tconnform
|
|||||||
object btnConnect: TButton
|
object btnConnect: TButton
|
||||||
Tag = 15
|
Tag = 15
|
||||||
Left = 245
|
Left = 245
|
||||||
Top = 248
|
Top = 271
|
||||||
Width = 95
|
Width = 95
|
||||||
Height = 25
|
Height = 25
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@ -3060,7 +3060,7 @@ object connform: Tconnform
|
|||||||
object btnCancel: TButton
|
object btnCancel: TButton
|
||||||
Tag = 16
|
Tag = 16
|
||||||
Left = 350
|
Left = 350
|
||||||
Top = 248
|
Top = 271
|
||||||
Width = 95
|
Width = 95
|
||||||
Height = 25
|
Height = 25
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@ -3124,4 +3124,24 @@ object connform: Tconnform
|
|||||||
TabOrder = 14
|
TabOrder = 14
|
||||||
OnClick = ButtonEditDescClick
|
OnClick = ButtonEditDescClick
|
||||||
end
|
end
|
||||||
|
object radioTypeTCPIP: TRadioButton
|
||||||
|
Left = 230
|
||||||
|
Top = 75
|
||||||
|
Width = 67
|
||||||
|
Height = 17
|
||||||
|
Caption = 'TCP/IP'
|
||||||
|
Checked = True
|
||||||
|
TabOrder = 15
|
||||||
|
TabStop = True
|
||||||
|
OnClick = radioNetTypeClick
|
||||||
|
end
|
||||||
|
object radioTypeNamedPipe: TRadioButton
|
||||||
|
Left = 314
|
||||||
|
Top = 75
|
||||||
|
Width = 113
|
||||||
|
Height = 17
|
||||||
|
Caption = 'Named pipe'
|
||||||
|
TabOrder = 16
|
||||||
|
OnClick = radioNetTypeClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -43,6 +43,8 @@ type
|
|||||||
btnDelete: TToolButton;
|
btnDelete: TToolButton;
|
||||||
btnSaveAs: TToolButton;
|
btnSaveAs: TToolButton;
|
||||||
btnEditDesc: TButton;
|
btnEditDesc: TButton;
|
||||||
|
radioTypeTCPIP: TRadioButton;
|
||||||
|
radioTypeNamedPipe: TRadioButton;
|
||||||
procedure CreateParams(var Params: TCreateParams); override;
|
procedure CreateParams(var Params: TCreateParams); override;
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure btnSaveAndConnectClick(Sender: TObject);
|
procedure btnSaveAndConnectClick(Sender: TObject);
|
||||||
@ -56,6 +58,7 @@ type
|
|||||||
procedure comboSessionSelect(Sender: TObject);
|
procedure comboSessionSelect(Sender: TObject);
|
||||||
procedure Modified(Sender: TObject);
|
procedure Modified(Sender: TObject);
|
||||||
procedure ButtonEditDescClick(Sender: TObject);
|
procedure ButtonEditDescClick(Sender: TObject);
|
||||||
|
procedure radioNetTypeClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
procedure FillSessionCombo(Sender: TObject);
|
procedure FillSessionCombo(Sender: TObject);
|
||||||
@ -93,6 +96,7 @@ end;
|
|||||||
procedure Tconnform.btnConnectClick(Sender: TObject);
|
procedure Tconnform.btnConnectClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
btn: TButton;
|
btn: TButton;
|
||||||
|
ConType: Byte;
|
||||||
begin
|
begin
|
||||||
Screen.Cursor := crHourglass;
|
Screen.Cursor := crHourglass;
|
||||||
// Save last connection name to registry
|
// Save last connection name to registry
|
||||||
@ -102,7 +106,11 @@ begin
|
|||||||
btn := Sender as TButton;
|
btn := Sender as TButton;
|
||||||
btn.Enabled := false;
|
btn.Enabled := false;
|
||||||
|
|
||||||
|
if radioTypeTCPIP.Checked then ConType := NETTYPE_TCPIP
|
||||||
|
else ConType := NETTYPE_NAMEDPIPE;
|
||||||
|
|
||||||
if Mainform.InitConnection(
|
if Mainform.InitConnection(
|
||||||
|
ConType,
|
||||||
editHost.Text,
|
editHost.Text,
|
||||||
editPort.Text,
|
editPort.Text,
|
||||||
editUsername.Text,
|
editUsername.Text,
|
||||||
@ -172,6 +180,10 @@ begin
|
|||||||
MainReg.WriteString(REGNAME_USER, editUsername.Text);
|
MainReg.WriteString(REGNAME_USER, editUsername.Text);
|
||||||
MainReg.WriteString(REGNAME_PASSWORD, encrypt(editPassword.Text));
|
MainReg.WriteString(REGNAME_PASSWORD, encrypt(editPassword.Text));
|
||||||
MainReg.WriteString(REGNAME_PORT, editPort.Text);
|
MainReg.WriteString(REGNAME_PORT, editPort.Text);
|
||||||
|
if radioTypeTCPIP.Checked then
|
||||||
|
MainReg.WriteInteger(REGNAME_NETTYPE, NETTYPE_TCPIP)
|
||||||
|
else
|
||||||
|
MainReg.WriteInteger(REGNAME_NETTYPE, NETTYPE_NAMEDPIPE);
|
||||||
MainReg.WriteString(REGNAME_TIMEOUT, editTimeout.Text);
|
MainReg.WriteString(REGNAME_TIMEOUT, editTimeout.Text);
|
||||||
MainReg.WriteBool(REGNAME_COMPRESSED, chkCompressed.Checked);
|
MainReg.WriteBool(REGNAME_COMPRESSED, chkCompressed.Checked);
|
||||||
MainReg.WriteString(REGNAME_ONLYDBS, Utf8Encode(editOnlyDBs.Text));
|
MainReg.WriteString(REGNAME_ONLYDBS, Utf8Encode(editOnlyDBs.Text));
|
||||||
@ -230,6 +242,7 @@ begin
|
|||||||
|
|
||||||
Screen.Cursor := crHourglass;
|
Screen.Cursor := crHourglass;
|
||||||
OpenRegistry(session);
|
OpenRegistry(session);
|
||||||
|
MainReg.WriteInteger(REGNAME_NETTYPE, DEFAULT_NETTYPE);
|
||||||
MainReg.WriteString(REGNAME_HOST, DEFAULT_HOST);
|
MainReg.WriteString(REGNAME_HOST, DEFAULT_HOST);
|
||||||
MainReg.WriteString(REGNAME_USER, DEFAULT_USER);
|
MainReg.WriteString(REGNAME_USER, DEFAULT_USER);
|
||||||
MainReg.WriteString(REGNAME_PASSWORD, encrypt(DEFAULT_PASSWORD));
|
MainReg.WriteString(REGNAME_PASSWORD, encrypt(DEFAULT_PASSWORD));
|
||||||
@ -270,6 +283,10 @@ begin
|
|||||||
Session := comboSession.Text;
|
Session := comboSession.Text;
|
||||||
SessionSelected := (Session <> '') and MainReg.KeyExists(REGPATH + REGKEY_SESSIONS + Session);
|
SessionSelected := (Session <> '') and MainReg.KeyExists(REGPATH + REGKEY_SESSIONS + Session);
|
||||||
if SessionSelected then begin
|
if SessionSelected then begin
|
||||||
|
case GetRegValue(REGNAME_NETTYPE, DEFAULT_NETTYPE, Session) of
|
||||||
|
NETTYPE_NAMEDPIPE: radioTypeNamedPipe.Checked := True;
|
||||||
|
else radioTypeTCPIP.Checked := True;
|
||||||
|
end;
|
||||||
editHost.Text := GetRegValue(REGNAME_HOST, '', Session);
|
editHost.Text := GetRegValue(REGNAME_HOST, '', Session);
|
||||||
editUsername.Text := GetRegValue(REGNAME_USER, '', Session);
|
editUsername.Text := GetRegValue(REGNAME_USER, '', Session);
|
||||||
editPassword.Text := decrypt(GetRegValue(REGNAME_PASSWORD, '', Session));
|
editPassword.Text := decrypt(GetRegValue(REGNAME_PASSWORD, '', Session));
|
||||||
@ -279,6 +296,7 @@ begin
|
|||||||
editOnlyDBs.Text := Utf8Decode(GetRegValue(REGNAME_ONLYDBS, '', Session));
|
editOnlyDBs.Text := Utf8Decode(GetRegValue(REGNAME_ONLYDBS, '', Session));
|
||||||
chkSorted.Checked := GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, Session);
|
chkSorted.Checked := GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, Session);
|
||||||
end else begin
|
end else begin
|
||||||
|
radioTypeTCPIP.Checked := True;
|
||||||
editHost.Text := '';
|
editHost.Text := '';
|
||||||
editUsername.Text := '';
|
editUsername.Text := '';
|
||||||
editPassword.Text := '';
|
editPassword.Text := '';
|
||||||
@ -294,6 +312,8 @@ begin
|
|||||||
btnSaveAndConnect.Enabled := SessionSelected;
|
btnSaveAndConnect.Enabled := SessionSelected;
|
||||||
btnDelete.Enabled := SessionSelected;
|
btnDelete.Enabled := SessionSelected;
|
||||||
btnEditDesc.Enabled := SessionSelected;
|
btnEditDesc.Enabled := SessionSelected;
|
||||||
|
radioTypeTCPIP.Enabled := SessionSelected;
|
||||||
|
radioTypeNamedPipe.Enabled := SessionSelected;
|
||||||
editHost.Enabled := SessionSelected;
|
editHost.Enabled := SessionSelected;
|
||||||
editUsername.Enabled := SessionSelected;
|
editUsername.Enabled := SessionSelected;
|
||||||
editPassword.Enabled := SessionSelected;
|
editPassword.Enabled := SessionSelected;
|
||||||
@ -311,6 +331,8 @@ begin
|
|||||||
lblSeconds.Enabled := SessionSelected;
|
lblSeconds.Enabled := SessionSelected;
|
||||||
lblOnlyDBs.Enabled := SessionSelected;
|
lblOnlyDBs.Enabled := SessionSelected;
|
||||||
|
|
||||||
|
radioNetTypeClick(Sender);
|
||||||
|
|
||||||
Screen.Cursor := crDefault;
|
Screen.Cursor := crDefault;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -353,4 +375,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure Tconnform.radioNetTypeClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
// Toggle between TCP/IP and named pipes mode
|
||||||
|
if radioTypeTCPIP.Checked then
|
||||||
|
lblHost.Caption := 'Hostname / IP:'
|
||||||
|
else
|
||||||
|
lblHost.Caption := 'Socket name:';
|
||||||
|
editPort.Enabled := radioTypeTCPIP.Checked;
|
||||||
|
lblPort.Enabled := editPort.Enabled;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -815,7 +815,7 @@ type
|
|||||||
procedure FillPopupQueryLoad;
|
procedure FillPopupQueryLoad;
|
||||||
procedure PopupQueryLoadRemoveAbsentFiles( sender: TObject );
|
procedure PopupQueryLoadRemoveAbsentFiles( sender: TObject );
|
||||||
procedure SessionConnect(Sender: TObject);
|
procedure SessionConnect(Sender: TObject);
|
||||||
function InitConnection(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases: WideString): Boolean;
|
function InitConnection(parNetType: Integer; parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases: WideString): Boolean;
|
||||||
//procedure HandleQueryNotification(ASender : TMysqlQuery; AEvent : Integer);
|
//procedure HandleQueryNotification(ASender : TMysqlQuery; AEvent : Integer);
|
||||||
|
|
||||||
function ExecUpdateQuery(sql: WideString; HandleErrors: Boolean = false; DisplayErrors: Boolean = false): Int64;
|
function ExecUpdateQuery(sql: WideString; HandleErrors: Boolean = false; DisplayErrors: Boolean = false): Int64;
|
||||||
@ -1430,7 +1430,7 @@ end;
|
|||||||
}
|
}
|
||||||
procedure TMainForm.Startup;
|
procedure TMainForm.Startup;
|
||||||
var
|
var
|
||||||
curParam : Byte;
|
curParam, parNetType: Byte;
|
||||||
sValue,
|
sValue,
|
||||||
parHost, parPort, parUser, parPass, parDatabase,
|
parHost, parPort, parUser, parPass, parDatabase,
|
||||||
parTimeout, parCompress, parDescription : String;
|
parTimeout, parCompress, parDescription : String;
|
||||||
@ -1515,6 +1515,7 @@ begin
|
|||||||
|
|
||||||
// Check commandline if parameters were passed. Otherwise show connections windows
|
// Check commandline if parameters were passed. Otherwise show connections windows
|
||||||
curParam := 1;
|
curParam := 1;
|
||||||
|
parNetType := NETTYPE_TCPIP;
|
||||||
while curParam <= ParamCount do begin
|
while curParam <= ParamCount do begin
|
||||||
// -M and -d are choosen not to conflict with mysql.exe
|
// -M and -d are choosen not to conflict with mysql.exe
|
||||||
// http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html
|
// http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html
|
||||||
@ -1525,6 +1526,8 @@ begin
|
|||||||
parHost := sValue
|
parHost := sValue
|
||||||
else if GetParamValue('P', 'port', curParam, sValue) then
|
else if GetParamValue('P', 'port', curParam, sValue) then
|
||||||
parPort := sValue
|
parPort := sValue
|
||||||
|
else if GetParamValue('T', 'nettype', curParam, sValue) then
|
||||||
|
parNetType := StrToIntDef(sValue, NETTYPE_TCPIP)
|
||||||
else if GetParamValue('C', 'compress', curParam, sValue) then
|
else if GetParamValue('C', 'compress', curParam, sValue) then
|
||||||
parCompress := sValue
|
parCompress := sValue
|
||||||
else if GetParamValue('M', 'timeout', curParam, sValue) then
|
else if GetParamValue('M', 'timeout', curParam, sValue) then
|
||||||
@ -1542,6 +1545,7 @@ begin
|
|||||||
|
|
||||||
// Find stored session if -dSessionName was passed
|
// Find stored session if -dSessionName was passed
|
||||||
if (parDescription <> '') and (MainReg.OpenKey(REGPATH + REGKEY_SESSIONS + parDescription, False)) then begin
|
if (parDescription <> '') and (MainReg.OpenKey(REGPATH + REGKEY_SESSIONS + parDescription, False)) then begin
|
||||||
|
parNetType := GetRegValue(REGNAME_NETTYPE, DEFAULT_NETTYPE, parDescription);
|
||||||
parHost := GetRegValue(REGNAME_HOST, DEFAULT_HOST, parDescription);
|
parHost := GetRegValue(REGNAME_HOST, DEFAULT_HOST, parDescription);
|
||||||
parUser := GetRegValue(REGNAME_USER, DEFAULT_USER, parDescription);
|
parUser := GetRegValue(REGNAME_USER, DEFAULT_USER, parDescription);
|
||||||
parPass := decrypt(GetRegValue(REGNAME_PASSWORD, DEFAULT_PASSWORD, parDescription));
|
parPass := decrypt(GetRegValue(REGNAME_PASSWORD, DEFAULT_PASSWORD, parDescription));
|
||||||
@ -1554,7 +1558,7 @@ begin
|
|||||||
// Minimal parameter for command line mode is hostname
|
// Minimal parameter for command line mode is hostname
|
||||||
CommandLineMode := parHost <> '';
|
CommandLineMode := parHost <> '';
|
||||||
if CommandLineMode then begin
|
if CommandLineMode then begin
|
||||||
Connected := InitConnection(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, IntToStr(Integer(DEFAULT_ONLYDBSSORTED)));
|
Connected := InitConnection(parNetType, parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, IntToStr(Integer(DEFAULT_ONLYDBSSORTED)));
|
||||||
if Connected then begin
|
if Connected then begin
|
||||||
SessionName := parDescription;
|
SessionName := parDescription;
|
||||||
if SessionName = '' then
|
if SessionName = '' then
|
||||||
@ -1568,6 +1572,7 @@ begin
|
|||||||
LastSession := GetRegValue(REGNAME_LASTSESSION, '');
|
LastSession := GetRegValue(REGNAME_LASTSESSION, '');
|
||||||
if LastSession <> '' then begin
|
if LastSession <> '' then begin
|
||||||
Connected := InitConnection(
|
Connected := InitConnection(
|
||||||
|
GetRegValue(REGNAME_NETTYPE, DEFAULT_NETTYPE, LastSession),
|
||||||
GetRegValue(REGNAME_HOST, '', LastSession),
|
GetRegValue(REGNAME_HOST, '', LastSession),
|
||||||
GetRegValue(REGNAME_PORT, '', LastSession),
|
GetRegValue(REGNAME_PORT, '', LastSession),
|
||||||
GetRegValue(REGNAME_USER, '', LastSession),
|
GetRegValue(REGNAME_USER, '', LastSession),
|
||||||
@ -2514,9 +2519,11 @@ end;
|
|||||||
procedure TMainForm.SessionConnect(Sender: TObject);
|
procedure TMainForm.SessionConnect(Sender: TObject);
|
||||||
var
|
var
|
||||||
Session: String;
|
Session: String;
|
||||||
|
parNetType: Integer;
|
||||||
parHost, parPort, parUser, parPass, parTimeout, parCompress, parDatabase, parSortDatabases: WideString;
|
parHost, parPort, parUser, parPass, parTimeout, parCompress, parDatabase, parSortDatabases: WideString;
|
||||||
begin
|
begin
|
||||||
Session := (Sender as TMenuItem).Caption;
|
Session := (Sender as TMenuItem).Caption;
|
||||||
|
parNetType := GetRegValue(REGNAME_NETTYPE, DEFAULT_NETTYPE, Session);
|
||||||
parHost := GetRegValue(REGNAME_HOST, '', Session);
|
parHost := GetRegValue(REGNAME_HOST, '', Session);
|
||||||
parUser := GetRegValue(REGNAME_USER, '', Session);
|
parUser := GetRegValue(REGNAME_USER, '', Session);
|
||||||
parPass := decrypt(GetRegValue(REGNAME_PASSWORD, '', Session));
|
parPass := decrypt(GetRegValue(REGNAME_PASSWORD, '', Session));
|
||||||
@ -2525,7 +2532,7 @@ begin
|
|||||||
parCompress := IntToStr(Integer(GetRegValue(REGNAME_COMPRESSED, DEFAULT_COMPRESSED, Session)));
|
parCompress := IntToStr(Integer(GetRegValue(REGNAME_COMPRESSED, DEFAULT_COMPRESSED, Session)));
|
||||||
parDatabase := Utf8Decode(GetRegValue(REGNAME_ONLYDBS, '', Session));
|
parDatabase := Utf8Decode(GetRegValue(REGNAME_ONLYDBS, '', Session));
|
||||||
parSortDatabases := IntToStr(Integer(GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, Session)));
|
parSortDatabases := IntToStr(Integer(GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, Session)));
|
||||||
if InitConnection(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases) then begin
|
if InitConnection(parNetType, parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases) then begin
|
||||||
SessionName := Session;
|
SessionName := Session;
|
||||||
DoAfterConnect;
|
DoAfterConnect;
|
||||||
end;
|
end;
|
||||||
@ -2536,15 +2543,16 @@ end;
|
|||||||
Receive connection parameters and create the mdi-window
|
Receive connection parameters and create the mdi-window
|
||||||
Paremeters are either sent by connection-form or by commandline.
|
Paremeters are either sent by connection-form or by commandline.
|
||||||
}
|
}
|
||||||
function TMainform.InitConnection(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases: WideString): Boolean;
|
function TMainform.InitConnection(parNetType: Integer; parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases: WideString): Boolean;
|
||||||
var
|
var
|
||||||
MysqlConnection: TMysqlConn;
|
MysqlConnection: TMysqlConn;
|
||||||
Profile: TOpenConnProf;
|
Profile: TOpenConnProf;
|
||||||
UsingPass: String;
|
UsingPass, NetType: String;
|
||||||
begin
|
begin
|
||||||
// fill structure
|
// fill structure
|
||||||
ZeroMemory(@Profile, SizeOf(Profile));
|
ZeroMemory(@Profile, SizeOf(Profile));
|
||||||
Profile.MysqlParams.Protocol := 'mysql';
|
Profile.MysqlParams.Protocol := 'mysql';
|
||||||
|
Profile.MysqlParams.NetType := parNetType;
|
||||||
Profile.MysqlParams.Host := Trim( parHost );
|
Profile.MysqlParams.Host := Trim( parHost );
|
||||||
Profile.MysqlParams.Port := StrToIntDef(parPort, DEFAULT_PORT);
|
Profile.MysqlParams.Port := StrToIntDef(parPort, DEFAULT_PORT);
|
||||||
Profile.MysqlParams.Database := '';
|
Profile.MysqlParams.Database := '';
|
||||||
@ -2565,7 +2573,12 @@ begin
|
|||||||
|
|
||||||
// attempt to establish connection
|
// attempt to establish connection
|
||||||
if Profile.MysqlParams.Pass <> '' then UsingPass := 'Yes' else UsingPass := 'No';
|
if Profile.MysqlParams.Pass <> '' then UsingPass := 'Yes' else UsingPass := 'No';
|
||||||
LogSQL('Connecting to '+Profile.MysqlParams.Host+
|
case parNetType of
|
||||||
|
NETTYPE_TCPIP: NetType := 'TCP/IP';
|
||||||
|
NETTYPE_NAMEDPIPE: NetType := 'named pipe';
|
||||||
|
else NetType := 'unknown protocol';
|
||||||
|
end;
|
||||||
|
LogSQL('Connecting to '+Profile.MysqlParams.Host+' via '+NetType+
|
||||||
', username '+Profile.MysqlParams.User+
|
', username '+Profile.MysqlParams.User+
|
||||||
', using password: '+UsingPass+' ...');
|
', using password: '+UsingPass+' ...');
|
||||||
if MysqlConnection.Connect <> MCR_SUCCESS then begin
|
if MysqlConnection.Connect <> MCR_SUCCESS then begin
|
||||||
|
@ -9,6 +9,8 @@ const
|
|||||||
MCR_SUCCESS = 0;
|
MCR_SUCCESS = 0;
|
||||||
MCR_FAILED = 1;
|
MCR_FAILED = 1;
|
||||||
|
|
||||||
|
{$I const.inc}
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
|
||||||
@ -52,7 +54,13 @@ begin
|
|||||||
with FOpenConn.MysqlParams do
|
with FOpenConn.MysqlParams do
|
||||||
begin
|
begin
|
||||||
FConn.Protocol := 'mysql';
|
FConn.Protocol := 'mysql';
|
||||||
|
if FOpenConn.MysqlParams.NetType = NETTYPE_TCPIP then begin
|
||||||
FConn.Hostname := Host;
|
FConn.Hostname := Host;
|
||||||
|
FConn.SocketName := '';
|
||||||
|
end else begin
|
||||||
|
FConn.Hostname := '.';
|
||||||
|
FConn.SocketName := Host;
|
||||||
|
end;
|
||||||
FConn.User := User;
|
FConn.User := User;
|
||||||
FConn.Password := Pass;
|
FConn.Password := Pass;
|
||||||
FConn.Port := Port;
|
FConn.Port := Port;
|
||||||
|
@ -21,6 +21,7 @@ type
|
|||||||
|
|
||||||
// Mysql protocol-relevant connection parameter structure
|
// Mysql protocol-relevant connection parameter structure
|
||||||
TMysqlConnParams = record
|
TMysqlConnParams = record
|
||||||
|
NetType: Integer;
|
||||||
Host: String;
|
Host: String;
|
||||||
Database: WideString;
|
Database: WideString;
|
||||||
Protocol,
|
Protocol,
|
||||||
@ -117,7 +118,13 @@ begin
|
|||||||
FResult := 0;
|
FResult := 0;
|
||||||
FSql := ASql;
|
FSql := ASql;
|
||||||
|
|
||||||
|
if AConn.MysqlParams.NetType = NETTYPE_TCPIP then begin
|
||||||
mc.HostName := AConn.MysqlParams.Host;
|
mc.HostName := AConn.MysqlParams.Host;
|
||||||
|
mc.SocketName := '';
|
||||||
|
end else begin
|
||||||
|
mc.HostName := '.';
|
||||||
|
mc.SocketName := AConn.MysqlParams.Host;
|
||||||
|
end;
|
||||||
mc.Database := AConn.MysqlParams.Database;
|
mc.Database := AConn.MysqlParams.Database;
|
||||||
mc.User := AConn.MysqlParams.User;
|
mc.User := AConn.MysqlParams.User;
|
||||||
mc.Password := AConn.MysqlParams.Pass;
|
mc.Password := AConn.MysqlParams.Pass;
|
||||||
|
Reference in New Issue
Block a user