Обсуждение: newer (11+) psqlODBC install on old system
Hi all, I have about 10 very old Windows XP installations using a legacy application. Everything was working fine until I upgraded Postgresql server to 12 from 11. This seemed to break the connection on the older pgsqlODBC 9 drivers that were installed. I can install and connect with up to pgsqlODBC 10. Later versions (11 or 12) on XP install OK but cannot connect, giving the error: The specified driver cannot be loaded because of a system error 126 I would be happy using older pgsqlODBC versions but I need 12 to be more compatible because I'm getting "c.relhasoids does not exist" errors in the logs and am getting connection problems with earlier versions. I've tried installing the Visual C++ runtimes from different versions but that doesn't seem to help. Any suggestions? Seems like a missing dll. Thanks, Joe
Joe Gilmour wrote: > The specified driver cannot be loaded because of a system error 126 This error code means that some DLL is missing. Did you install the driver using the full .exe installer, which should include the VC++ redistributables? Regards, Clemens
Joe Gilmour wrote: > I wonder if it there is another DLL that it depends on that isn't in the distributed installer? Good question. Please try a dependency walker (e.g. https://github.com/lucasg/Dependencies, or the old https://www.dependencywalker.com/) on the driver (psqlodbc*.dll). Regards, Clemens
Joe Gilmour wrote: > GetProcAddress(0x77BD0000 [MIDIMAP.DLL], "midMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned NULL.Error: The specified procedure could not be found (127). This is strange, because both DLLs should be part of the OS. Do these DLLs come from the system directory, or did you pick up a rogue DLL from somewhere else? Regards, Clemens
On 12/5/20 6:06 pm, Clemens Ladisch wrote: > Joe Gilmour wrote: >> GetProcAddress(0x77BD0000 [MIDIMAP.DLL], "midMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned NULL.Error: The specified procedure could not be found (127). > This is strange, because both DLLs should be part of the OS. > Do these DLLs come from the system directory, or did you pick up a rogue DLL from somewhere else? > > > Regards, > Clemens > > I've had another go with Depends When I profile odbcad32.exe under libssl-1_1.dll it says vcruntime140.dll is missing as are some dll files starting with API-MS-WIN-CRT. Under libcrypto-1_1.dll it says the same but also missing bcrypt.dll Seems almost like a path issue but I really don't know. Thanks again. Joe
This is probably of not related, but just in case, I am using Win10, but I do not have WINMM.DLL anywhere on my system. I use MinGW for Windows development which contains libwinmm.a in the MinGW\lib folder. It is also included in two thirdparty apps I use that are compiled using gcc & MinGW. If you think this is relative to your problem, I can see whatprocedures are included in this archive. HTH Danny -----Original Message----- From: Joe Gilmour <joe@gilmours.com.au> Sent: Wednesday, May 13, 2020 8:22 AM To: pgsql-odbc@lists.postgresql.org Subject: Re: newer (11+) psqlODBC install on old system On 12/5/20 6:06 pm, Clemens Ladisch wrote: > Joe Gilmour wrote: >> GetProcAddress(0x77BD0000 [MIDIMAP.DLL], "midMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned NULL.Error: The specified procedure could not be found (127). > This is strange, because both DLLs should be part of the OS. > Do these DLLs come from the system directory, or did you pick up a rogue DLL from somewhere else? > > > Regards, > Clemens > > I've had another go with Depends When I profile odbcad32.exe under libssl-1_1.dll it says vcruntime140.dll is missing as are some dll files starting withAPI-MS-WIN-CRT. Under libcrypto-1_1.dll it says the same but also missing bcrypt.dll Seems almost like a path issue but I really don't know. Thanks again. Joe
Joe Gilmour wrote: > On 12/5/20 6:06 pm, Clemens Ladisch wrote: >> Joe Gilmour wrote: >>> GetProcAddress(0x77BD0000 [MIDIMAP.DLL], "midMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned NULL.Error: The specified procedure could not be found (127). >> >> This is strange, because both DLLs should be part of the OS. >> Do these DLLs come from the system directory, or did you pick up a rogue DLL from somewhere else? > > I've had another go with Depends > > When I profile odbcad32.exe under libssl-1_1.dll it says vcruntime140.dll is missing As far as I know, libssl does not come with Windows itself. Are you using an Intel graphics driver? Or which DLL depends on this? Is this the 32- or 64-bit version? Which VC runtime did you try to install? > as are some dll files starting with API-MS-WIN-CRT. These virtual DLLs do not actually exist. That old depends tool does not know about them; try the latest release of the other one. Regards, Clemens