diff --git a/out/heidisql.iss b/out/heidisql.iss index 918cb377..7aec13af 100644 --- a/out/heidisql.iss +++ b/out/heidisql.iss @@ -77,7 +77,6 @@ Name: "activate_statistics"; Description: "Automatically report client and serve [InstallDelete] Type: files; Name: "{app}\libmysql40.dll" Type: files; Name: "{app}\libmysql41.dll" -Type: files; Name: "{app}\libmysql.dll" Type: files; Name: "{app}\{#ProgExeName}.manifest" Type: files; Name: "{app}\{#ProgNameLower}.url" Type: files; Name: "{app}\{#ProgNameLower}_forum.url" @@ -91,6 +90,8 @@ Source: "license.txt"; DestDir: "{app}"; Flags: ignoreversion Source: "gpl.txt"; DestDir: "{app}"; Flags: ignoreversion Source: "libmariadb64.dll"; DestDir: "{app}"; DestName: "libmariadb.dll"; Check: Is64BitInstallMode; Flags: ignoreversion Source: "libmariadb32.dll"; DestDir: "{app}"; DestName: "libmariadb.dll"; Check: not Is64BitInstallMode; Flags: ignoreversion +Source: "libmysql64.dll"; DestDir: "{app}"; DestName: "libmysql.dll"; Check: Is64BitInstallMode; Flags: ignoreversion +Source: "libmysql32.dll"; DestDir: "{app}"; DestName: "libmysql.dll"; Check: not Is64BitInstallMode; Flags: ignoreversion Source: "libpq64.dll"; DestDir: "{app}"; DestName: "libpq.dll"; Check: Is64BitInstallMode; Flags: ignoreversion Source: "libpq32.dll"; DestDir: "{app}"; DestName: "libpq.dll"; Check: not Is64BitInstallMode; Flags: ignoreversion Source: "libintl-864.dll"; DestDir: "{app}"; DestName: "libintl-8.dll"; Check: Is64BitInstallMode; Flags: ignoreversion diff --git a/out/libmysql32.dll b/out/libmysql32.dll new file mode 100644 index 00000000..60e2a8ba Binary files /dev/null and b/out/libmysql32.dll differ diff --git a/out/libmysql64.dll b/out/libmysql64.dll new file mode 100644 index 00000000..9031b946 Binary files /dev/null and b/out/libmysql64.dll differ diff --git a/source/dbconnection.pas b/source/dbconnection.pas index c749bae6..d2e74c01 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -2083,14 +2083,20 @@ end; procedure TMySQLConnection.DoBeforeConnect; var msg: String; + OldErrorMode: Cardinal; begin // Init libmysql before actually connecting. // Try newer libmariadb version at first, and fall back to libmysql if LibMysqlHandle = 0 then begin LibMysqlPath := 'libmariadb.dll'; Log(lcDebug, f_('Loading library file %s ...', [LibMysqlPath])); + // Temporarily suppress error popups while loading new library on Windows XP, see #79 + OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS); + SetErrorMode(OldErrorMode or SEM_FAILCRITICALERRORS); LibMysqlHandle := LoadLibrary(PWideChar(LibMysqlPath)); + SetErrorMode(OldErrorMode); if LibMysqlHandle = 0 then begin + // Win XP goes here, or users without the above library. Load an XP-compatible one here. Log(lcDebug, f_('Could not load %s', [LibMysqlPath])); LibMysqlPath := 'libmysql.dll'; Log(lcDebug, f_('Loading library file %s ...', [LibMysqlPath]));