Foxhound 4.0 FAQ
Foxhound 4.0 FAQ Home      Foxhound Home      RisingRoad      

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  

       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:


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:


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?

This page was last updated on September 28, 2017.      Foxhound 4.0 FAQ Home      Foxhound Home      RisingRoad