mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 11:17:57 +08:00
Give the user a hint to download VC redistributable if PostgreSQL dll fails to assign a procedure. See https://www.heidisql.com/forum.php?t=18580#p34297
This commit is contained in:
@ -2231,13 +2231,27 @@ end;
|
|||||||
|
|
||||||
procedure TPgConnection.DoBeforeConnect;
|
procedure TPgConnection.DoBeforeConnect;
|
||||||
var
|
var
|
||||||
LibraryPath: String;
|
LibraryPath,
|
||||||
|
msg: String;
|
||||||
begin
|
begin
|
||||||
// Init lib before actually connecting.
|
// Init lib before actually connecting.
|
||||||
LibraryPath := ExtractFilePath(ParamStr(0)) + Parameters.LibraryFile;
|
LibraryPath := ExtractFilePath(ParamStr(0)) + Parameters.LibraryFile;
|
||||||
Log(lcDebug, f_('Loading library file %s ...', [LibraryPath]));
|
Log(lcDebug, f_('Loading library file %s ...', [LibraryPath]));
|
||||||
FLib := TPostgreSQLLib.Create(LibraryPath);
|
try
|
||||||
Log(lcDebug, FLib.DllFile + ' v' + IntToStr(FLib.PQlibVersion) + ' loaded.');
|
FLib := TPostgreSQLLib.Create(LibraryPath);
|
||||||
|
Log(lcDebug, FLib.DllFile + ' v' + IntToStr(FLib.PQlibVersion) + ' loaded.');
|
||||||
|
except
|
||||||
|
on E:EDbError do begin
|
||||||
|
msg := E.Message;
|
||||||
|
if E.ErrorCode = TDbLib.LIB_PROC_ERROR then begin
|
||||||
|
msg := msg + sLineBreak + sLineBreak +
|
||||||
|
f_('Installing VC redistributable might help: %s',
|
||||||
|
['https://support.microsoft.com/en-us/help/3179560/update-for-visual-c-2013-and-visual-c-redistributable-package']
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
raise EDbError.Create(msg, E.ErrorCode);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -326,6 +326,8 @@ type
|
|||||||
|
|
||||||
// DLL loading
|
// DLL loading
|
||||||
TDbLib = class(TObject)
|
TDbLib = class(TObject)
|
||||||
|
const
|
||||||
|
LIB_PROC_ERROR: Cardinal = 1000;
|
||||||
private
|
private
|
||||||
FDllFile: String;
|
FDllFile: String;
|
||||||
FHandle: HMODULE;
|
FHandle: HMODULE;
|
||||||
@ -7716,7 +7718,7 @@ begin
|
|||||||
);
|
);
|
||||||
if Windows.GetLastError <> 0 then
|
if Windows.GetLastError <> 0 then
|
||||||
msg := msg + CRLF + CRLF + f_('Internal error %d: %s', [Windows.GetLastError, SysErrorMessage(Windows.GetLastError)]);
|
msg := msg + CRLF + CRLF + f_('Internal error %d: %s', [Windows.GetLastError, SysErrorMessage(Windows.GetLastError)]);
|
||||||
Raise EDbError.Create(msg);
|
Raise EDbError.Create(msg, LIB_PROC_ERROR);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user