Message: Could not load dynamic library ...
Message: SQL error: Could not load dynamic library ... Message: Unable to load either rroad4.dll or rroad464.dll... Message: Unable to read rroad4.dll. Message: Unable to read rroad464.dll.
Explanation: Try applying Patch 3 to Foxhound 4 build 4729, or upgrading to Foxhound 4 build 4739 or later, to get this bug fix:
Fix "unable to load dll" messages:
Could not load dynamic library
Unable to load either rroad4.dll or rroad464.dll
Unable to read rroad4.dll
Unable to read rroad464.dll
(1) This fix delivers 4 new *.dll files and replaces 10 *.bat
files in the Foxhound 4 folder.
These files fix a problem where Foxhound does not start when
it is installed on a computer with SQL Anywhere 17 installed
but not SQL Anywhere 16. Symptoms include the following error
messages:
The program can't start because dblib16.dll is missing
Unable to load either rroad4.dll or rroad464.dll
The fix requires that all *.bat files which start the
Foxhound 4 database using dbsrv16.exe or dbsrv17.exe
must include code that replaces the rroad4.dll and
rroad464.dll with files that support whichever version
of SQL Anywhere is going to be used: 16 or 17.
The fix consists of these lines added to the *.bat files:
REM Code from patch-4729-003-DLLs-Properties...
IF /I "%SPGM%z%BIN%z"=="dbsrv16.exezBin32z" (COPY rroad4_sa16_bin32.dll rroad4.dll)
IF /I "%SPGM%z%BIN%z"=="dbsrv16.exezBin64z" (COPY rroad4_sa16_bin64.dll rroad464.dll)
IF /I "%SPGM%z%BIN%z"=="dbsrv17.exezBin32z" (COPY rroad4_sa17_bin32.dll rroad4.dll)
IF /I "%SPGM%z%BIN%z"=="dbsrv17.exezBin64z" (COPY rroad4_sa17_bin64.dll rroad464.dll)
Those lines are added to the following *.bat files:
$backup_foxhound4.bat
$start_foxhound4_chrome.bat
$start_foxhound4_chrome_debug.bat
$start_foxhound4_default_browser.bat
$start_foxhound4_default_browser_debug.bat
$start_foxhound4_engine.bat
$start_foxhound4_firefox.bat
$start_foxhound4_firefox_debug.bat
$start_foxhound4_ie.bat
$start_foxhound4_ie_debug.bat
|
Also, the rroad4.dll and/or rroad464.dll files may be missing from the Foxhound installation folder, or their Windows permissions may be set to prevent them from being loaded.
The messages "Unable to read rroad4.dll" and/or "Unable to read rroad464.dll" will appear if Foxhound is unable to read the files via xp_read_file.
The message "Unable to load either rroad4.dll or rroad464.dll" will appear when Foxhound is unable to CALL a function in either file. This message is accompanied by diagnostic data which is also written to the
rroad_exception table; see How do I report unexpected errors and exceptions?
Try reinstalling Foxhound.
Here is where rroad4.dll and rroad464.dll are installed by default on Windows 7:
C:\ProgramData\RisingRoad\Foxhound4
If you have created a custom installation for Foxhound here's what you can try:
-
First, make sure that rroad4.dll and rroad464.dll are located in the same folder as the Foxhound database foxhound4.db.
-
Second, stop and restart the Foxhound database to ensure that rroad4.dll or rroad464.dll can be loaded.
-
Finally, use the DSN tab on the Foxhound main menu to connect to a database without getting
the "Could not load dynamic library..." message.
The rroad4.dll and rroad464.dll files contain the very small but critical portion of Foxhound logic that had to be written in C.
Outside the context of Foxhound, the message "Could not load dynamic library" can appear when SQL code running on a 32-bit SQL Anywhere server tries to load a
CREATE EXTERNAL procedure located in a 64-bit DLL, or vice versa. Foxhound should not have this particular problem because both 32-bit and
64-bit versions of the DLL rroad4.dll and rroad464.dll are provided, and Foxhound loads whichever one corresponds to the SQL
Anywhere server being used to run Foxhound.
See also...
How do I reinstall Foxhound?
How do I report unexpected errors and exceptions?
|