Kbase 22101: Specified Driver Could Not be Loaded Due to System Error 31
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  17/07/2002 |
|
SUMMARY:
This error message can be displayed when an ODBC connection to our SQL-92 engine fails (for instance, when testing the ODBC connection with the ODBC Datasource Administrator on Windows).
Trying to connect to the database with the Progress SQL Explorer tool from the same machine will show the following error message:
"Error: No suitable driver (8933)".
EXPLANATION:
In errno.h on NT, error 31 refers to: "ERROR_GEN_FAILURE: A device attached to the system is not functioning". This is a somewhat misleading error message.
One possible reason for this problem is that a DLL could not be loaded by a process or another DLL because its version is too old.
SOLUTION:
Use a freeware tool called "Dependency Walker" to check for problems in the chain of dependencies. You can use the "Profile" section of "Dependency Walker" to run the application (that is, run odbcad32.exe with the "Profile" option to run the ODBC Datasource Administrator). Reproduce the problem and check what error messages will be displayed in the output pane of "Dependency Walker". Compare the versions of the DLL's which are causing a problem with the versions of an installation without the problem and replace the DLL's causing the problem with the later versions.
"Dependency Walker" can be downloaded from this website:
http://www.dependencywalker.com/
References to Written Documentation:
Progress Knowledge Base Solution 18343, "Errno.h NT 4.0 (Numbers -8 to 1121L)
Microsoft Knowledgebase Article Q200767, "PRB: LoadLibrary API Fails With 31 (ERROR_GEN_FAILURE) Error"