Detect MariaDB, and use MariaDB icon in session manager, status bar and database tree.

This commit is contained in:
Ansgar Becker
2011-06-10 22:26:13 +00:00
parent e60539b077
commit ed577e4482
6 changed files with 79 additions and 50 deletions

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

View File

@@ -123,6 +123,7 @@ type
FSessions: TObjectList<TConnectionParameters>;
FSessionModified, FOnlyPasswordModified, FSessionAdded: Boolean;
FWidthListSessions: Byte; // Percentage values
FServerVersion: String;
function SelectedSession: String;
function CurrentParams: TConnectionParameters;
procedure FinalizeModifications(var CanProceed: Boolean);
@@ -152,6 +153,7 @@ var
i: Integer;
nt: TNetType;
Node: PVirtualNode;
Params: TConnectionParameters;
begin
// Fix GUI stuff
InheritFont(Font);
@@ -164,8 +166,10 @@ begin
FLoaded := False;
comboNetType.Clear;
Params := TConnectionParameters.Create;
for nt:=Low(nt) to High(nt) do
comboNetType.Items.Add(TConnectionParameters.NetTypeName(nt, True));
comboNetType.Items.Add(Params.NetTypeName(nt, True));
Params.Free;
FSessions := TObjectList<TConnectionParameters>.Create;
SessionNames := TStringList.Create;
@@ -406,6 +410,7 @@ begin
Result := TConnectionParameters.Create;
Result.SessionName := SelectedSession;
Result.NetType := TNetType(comboNetType.ItemIndex);
Result.ServerVersion := FServerVersion;
Result.Hostname := editHost.Text;
Result.Username := editUsername.Text;
Result.Password := editPassword.Text;
@@ -525,6 +530,7 @@ begin
editSSLPrivateKey.Text := Sess.SSLPrivateKey;
editSSLCertificate.Text := Sess.SSLCertificate;
editSSLCACertificate.Text := Sess.SSLCACertificate;
FServerVersion := Sess.ServerVersion;
FLoaded := True;
end;

View File

@@ -200,6 +200,7 @@ const
REGNAME_COPYTABLE_DATA = 'CopyTable_Data';
REGNAME_FILTERS = 'RecentFilters';
REGNAME_SERVERVERSION = 'ServerVersion';
REGNAME_SERVERVERSION_FULL = 'ServerVersionFull';
REGNAME_LASTCONNECT = 'LastConnect';
REGNAME_CONNECTCOUNT = 'ConnectCount';
REGNAME_REFUSEDCOUNT = 'RefusedCount';

View File

@@ -308,7 +308,7 @@ type
strict private
FNetType: TNetType;
FHostname, FUsername, FPassword, FAllDatabases, FStartupScriptFilename,
FSessionName, FSSLPrivateKey, FSSLCertificate, FSSLCACertificate,
FSessionName, FSSLPrivateKey, FSSLCertificate, FSSLCACertificate, FServerVersion,
FSSHHost, FSSHUser, FSSHPassword, FSSHPlinkExe, FSSHPrivateKey: String;
FPort, FSSHPort, FSSHLocalPort, FSSHTimeout: Integer;
FLoginPrompt, FCompressed: Boolean;
@@ -317,12 +317,14 @@ type
constructor Create;
function CreateConnection(AOwner: TComponent): TDBConnection;
function CreateQuery(AOwner: TComponent): TDBQuery;
class function NetTypeName(NetType: TNetType; LongFormat: Boolean): String;
function NetTypeName(NetType: TNetType; LongFormat: Boolean): String;
function GetNetTypeGroup: TNetTypeGroup;
function IsMariaDB: Boolean;
property ImageIndex: Integer read GetImageIndex;
published
property NetType: TNetType read FNetType write FNetType;
property NetTypeGroup: TNetTypeGroup read GetNetTypeGroup;
property ServerVersion: String read FServerVersion write FServerVersion;
property SessionName: String read FSessionName write FSessionName;
property Hostname: String read FHostname write FHostname;
property Port: Integer read FPort write FPort;
@@ -756,15 +758,21 @@ begin
end;
class function TConnectionParameters.NetTypeName(NetType: TNetType; LongFormat: Boolean): String;
function TConnectionParameters.NetTypeName(NetType: TNetType; LongFormat: Boolean): String;
var
My: String;
begin
if IsMariaDB then
My := 'MariaDB'
else
My := 'MySQL';
if LongFormat then case NetType of
ntMySQL_TCPIP:
Result := 'MySQL (TCP/IP)';
Result := My+' (TCP/IP)';
ntMySQL_NamedPipe:
Result := 'MySQL (named pipe)';
Result := My+' (named pipe)';
ntMySQL_SSHtunnel:
Result := 'MySQL (SSH tunnel)';
Result := My+' (SSH tunnel)';
ntMSSQL_NamedPipe:
Result := 'Microsoft SQL Server (named pipe)';
ntMSSQL_TCPIP:
@@ -777,7 +785,7 @@ begin
Result := 'Microsoft SQL Server (Windows RPC)';
end else case NetType of
ntMySQL_TCPIP, ntMySQL_NamedPipe, ntMySQL_SSHtunnel:
Result := 'MySQL';
Result := My;
ntMSSQL_NamedPipe, ntMSSQL_TCPIP:
Result := 'MS SQL';
end;
@@ -797,10 +805,20 @@ begin
end;
function TConnectionParameters.IsMariaDB: Boolean;
begin
Result := Pos('-mariadb', LowerCase(ServerVersion)) > 0;
end;
function TConnectionParameters.GetImageIndex: Integer;
begin
case NetTypeGroup of
ngMySQL: Result := 164;
ngMySQL: begin
Result := 164;
if IsMariaDB then
Result := 166;
end;
ngMSSQL: Result := 123;
else Result := ICONINDEX_SERVER;
end;
@@ -1229,6 +1247,9 @@ end;
procedure TDBConnection.DoAfterConnect;
begin
OpenRegistry(FParameters.SessionName);
MainReg.WriteString(REGNAME_SERVERVERSION_FULL, FServerVersionUntouched);
FParameters.ServerVersion := FServerVersionUntouched;
if Assigned(FOnConnected) then
FOnConnected(Self, FDatabase);
end;

View File

@@ -2443,6 +2443,7 @@ begin
Result.SSLCACertificate := GetRegValue(REGNAME_SSL_CA, '', Session);
Result.StartupScriptFilename := GetRegValue(REGNAME_STARTUPSCRIPT, '', Session);
Result.Compressed := GetRegValue(REGNAME_COMPRESSED, DEFAULT_COMPRESSED, Session);
Result.ServerVersion := GetRegValue(REGNAME_SERVERVERSION_FULL, '', Session);
end;
end;

View File

@@ -2614,126 +2614,126 @@ object MainForm: TMainForm
Left = 104
Top = 160
Bitmap = {
494C0101A6005001200110001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
494C0101A7005001540110001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000A0020000010020000000000000A0
0200000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0008000000010000000000000000000000000000000000000000000000000000
0001000000080000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000002121215CFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE9E7E1FE342F249B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000012940
4795172428770000001200000001000000000000000000000001000000140423
2C7B0635428F0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000037373777FFFFFFFFFFFFFFFFFDFD
FDFEF5F5F2FF897E5DF33B3118BA000000060000000000000000B3B3B3FFB3B3
B3FFB3B3B3FF000000002A2A2AFF232323FF1D1D1DFF161616FF111111FF0B0B
0BFF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0BFF000000000000000000000000000000000000000000000000000000002238
3E8667E0FEFF4B9CB4DF0D1A1F6B0000000E00000010031C2370299BB9E243DA
FEFF0529327A0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000002F2E2E70F9F9F9FCFFFFFFFFFFFFFFFFFFFF
FFFF796B46F429210CA602010122000000000000000000000000B3B3B3FFE4E4
E4FFB3B3B3FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000003000000031017
1A5A94EAFEFF96EAFEFF69DFFDFF378AA2D72C879FDC59DBF9FF1BD5FEFF29D6
FEFF010F134F0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000636332C8EF9F9F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFE3E0D8FFA59D87F4514117E6040301350000000000000000B4B4B4FFE5E5
E5FFB3B3B3FF000000003C3C3CFF353535FF2E2E2EFF272727FF202020FF1A1A
1AFF131313FF0E0E0EFF0101016B000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
1AFF131313FF0E0E0EFF0101016B000000000000000D332F2EB62D2B2CB01212
127893E6FAFFBDF3FFFF98EAFFFF6BDDFAFF516361FF386571FF0DB6D8FF30D5
FBFF000203270000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000114436
15D10E0B04613F3721B8F3F2EFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFDCD9CEFF5A4E31D706050242000000000000000000000000B6B6B6FFE6E6
E6FFB3B3B3FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000001000021605A57CC7D8894EE778B
A2FF6A8997FF94A7A6FF83A5ABFF6293A1FF4D6669FF536D8DFF416571FF4774
7BFF29211FBC0000000B00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000001B160983B1AA
98F84F3E10EDA59F8DEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E6E0FF6657
31EC322C1AA40000000E00000000000000000000000000000000B8B8B8FFE8E8
E8FFB5B5B5FF000000004E4E4EFF474747FF404040FF393939FF313131FF2A2A
2AFF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
2AFF000000000000000000000000000000000000000000000000000000032829
28959CB7D0FF6D93B9FF5981ACFF5A85B0FF5B86B1FF60758DFF5A7EA4FF464B
5CFF241D1CB10000000200000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000003D331CBAF9F9
F8FF7F7049F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF827450F60A08
044C000000000000000000000000000000000000000000000000BABABAFFEBEB
EBFFB7B7B7FF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000002020D105061C4
DFF488AAB1FF9BB1C6FF89AED0FF729FC7FF6B9AC3FF6998C2FF6795BFFF517A
A6FF364B53F101090B4700000001000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000362F19AFFDFC
FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E7E0FF4C3E1ED40000
0000000000000000000000000000000000000000000000000000BBBBBBFFEDED
EDFFB9B9B9FF000000005F5F5FFF585858FF525252FF4B4B4BFF444444FF3C3C
3CFF353535FF2E2E2EFF0707076B000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
3CFF353535FF2E2E2EFF0707076B0000000000000002020D115339C1E2F53CD9
FEFF7CE4FFFF9AC7CEFF9FAFB2FF94A2ABFF869FB7FF719EC6FF6A99C3FF6492
BCFF485C74FF3EB0CDF2020C104F000000010000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000001F1B1083DAD6
CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF867A5AF10A08044F0000
0000000000000000000000000000000000000000000000000000BCBCBCFFEFEF
EFFFBBBBBBFF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000020E125026C3EAF82ED6FDFF20D5
FEFF59DCFEFF97EAFFFFBBF3FFFFC6F6FEFFA7DAE3FF8AA6ADFF7CA0C0FF6998
C2FF4C749DFF52AABAFF34C0E2F501090C450000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000261F0E98CDC8
BCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8E6DFFF493B17D7000000000000
0000000000000000000000000000000000000000000000000000BCBCBCFFF0F0
F0FFBBBBBBFF000000006C6C6CFF676767FF626262FF5B5B5BFF555555FF4E4E
4EFF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
4EFF000000000000000000000000000000000000000400020323010D11470621
296C1B434E92478799CBA3EDFEFFC5F6FFFFBEF4FFFF7EE4FDFF64787BEB729F
C7FF5F8DB7FF1C282DA700020321000000030000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000101002172674DDEFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFBFF695A35EA03020031000000000000
0000000000000000000000000000000000000000000000000000BCBCBCFFF0F0
F0FFBCBCBCFF0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000011674C6DCF1B9F3FFFFC4F5FFFF63BCD5ED010101286F7B
87EB6D9BC4FF556A80EC05030342000000010000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001F1A0C88D6D2C8FBE1DD
D5FFF0EFEBFFFFFFFFFFF8F7F6FF726543EB110E076500000000000000000000
0000000000000000000000000000000000000000000000000000BCBCBCFFBCBC
BCFFBCBCBCFF00000000767676FF737373FF6F6F6FFF6A6A6AFF646464FF5F5F
5FFF585858FF525252FF0D0D0D6B000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000001E384088A0ECFEFFA5EDFEFF1E31387F000000000B08
064D8B96A1F8818D99FF6E889FF40201002A0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000013615537DCFDFDFDFFCBC6
B7FFF8F7F6FFD7D3C7FF60532BEA0B0A05530000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000011671C6DCF17FC4D6EE00000012000000000000
00000100001F110D0A5F2318108D0301002E0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000003E341BBCE7E5DFFCD6D1C4FF7D70
4DF2615331E6362D17B000000018000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000001F3B448C1D32388000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000554A2AD7675835EA2F2710AD0000
@@ -2741,7 +2741,7 @@ object MainForm: TMainForm
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000101160000000F00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000