Error detected by database driver

When a processing server receives an unknown message from the database driver, an error message similar to the following appears:

Error Detected By Database DLL

This section provides some common troubleshooting steps for resolving this issue. Before completing these steps, verify your database connectivity and general reporting configuration (as described in Troubleshooting reports and looping database logon prompts).

To troubleshoot database driver errors
  1. Verify the database drivers for consistency.

    Ensure that the database driver (ODBC or native) used when the report was designed in Crystal Reports matches the database driver that is installed on the Job Server, Page Server, and RAS.

    If the Job Server or the Page Server is installed on UNIX, then the database driver will not match exactly (the UNIX version will be a .so file instead of a .dll). However, the Windows/UNIX versions of each driver should correspond in regards to version numbers or driver release.

  2. Disable the report's "Use Indexes or Server for Speed" option.

    Open the report in Crystal Reports and, on the File menu, click Options. On the Database tab, clear the "Use Indexes or Server for Speed" option. Disabling this option may resolve database driver errors.

  3. Verify the report's SQL statement and ensure that it has not been edited manually.

    Open the report in Crystal Reports and, on the Database menu, click Show SQL Query. Copy the query into a text editor; then use your database server's query tool to run the query.

    If the option appears in Crystal Reports, click Reset in the Show SQL Query dialog box. Compare the regenerated query with the version displayed in your text editor. If the queries differ, save the report so it uses the regenerated SQL query.

    Note:    If you need to edit a report's SQL statement, do so with a stored procedure, rather than by editing it manually. If you have developed a web application that modifies the SQL statement through code, ensure that only the WHERE clause is changed.

  4. Ensure that null values are not being passed to subreports.

    If the report contains one or more subreports, open it in Crystal Reports and, on the File menu, click Report Options. Select the "Convert Database NULL Values to Default" check box and the "Convert Other NULL Values to Default" check box.

  5. If the report is based off on ODBC driver, enable tracing to obtain more information about the error.

    On Windows, ODBC tracing can be started through the ODBC Data Source Administrator. On UNIX, similar tracing can be enabled in the system information file (.odbc.ini).

    Once you enable tracing, run the report again from a browser to generate the tracing log. After you run the report, disable tracing and review the log file for additional "Error" or "Busy" messages. Tracing may provide additional details that allow you to troubleshoot the problem.

  6. If the report is based off Informix 7.3, check the database driver.

    If a report that uses the Informix database driver (Windows version) causes a database driver error, modify the report to use the Crystal Reports "CR Informix" driver.

  7. Verify the table definition of the database that the report is based off.

    If your web application dynamically changes a report's data source at runtime, ensure that the schema of each database matches the schema of the database that the report was originally designed for. Rather than running the same report against diverse data sources, consider designing a separate report for each database.

  8. Verify the data type of parameter values passed through code.

    If your web application passes parameter values to a report, ensure that you are casting the correct data type for the parameter value. It is always a good idea to cast values to ensure they are of the correct type. For specific details, see the function reference for your development language.

Related topics


Crystal Decisions
http://www.crystaldecisions.com/
Support services
http://support.crystaldecisions.com/