810.TXT ===================================================================== Unraveling the OBDC Mystery ===================================================================== PRODUCT: R:BASE VERSION: 5.1 or higher ===================================================================== CATALOG: General Information AREA : Data Manipulation ===================================================================== ODBC, Open DataBase Connectivity, is a tool used by applications to access the data stored within a database. You can think of ODBC as a translator_it translates the data from one database program into a standard language that can be understood by the requesting application. In the R:BASE world, ODBC allows both Crystal Reports for R:BASE and R:BASE for Windows 5.1 to understand and manipulate data from other database systems or servers. The players of this translation game are: 1) the data driver, 2) the data source, 3) the INI files, which store the information about the driver and source, and 4) the ODBC administrator program. The most common problems with ODBC is that all the players don't have the correct information about the game. The data driver, a Dynamic Link Library (DLL), is the tool ODBC uses to translate the data from a server to the standard language. Each server must have an appropriate driver to tell ODBC how to translate. Information about data drivers is stored in the ODBCINST.INI file. This file contains two sections. The first section shows which drivers are installed, for example, RB51_16=Installed. The second section names the driver, for example, [RB51_16], and gives the path of the driver file, Driver=C:\WINDOWS\SYSTEM\RB51_16.DLL, and any other information necessary for the driver. R:BASE requires the setup line to reference the location of the RBSETUP.DLL file, Setup=C:\WINDOWS\SYSTEM\RBSETUP.DLL. ;-------------------------------------------------------------------- ; WARNING: Do not make changes to this file without using either the ; ODBC Setup program, the ODBC Administrator, or other ; utilities provided for maintaining installed drivers and ; data sources ; ; Changing these files directly could result in a loss of ; information required by ODBC to execute. ;--------------------------------------------------------------------- [ODBC Drivers] RB51_16=Installed [RB51_16] Driver=C:\WINDOWS\SYSTEM\RB51_16.DLL Setup=C:\WINDOWS\SYSTEM\RBSETUP.DLL A data source is the server and its location. The information about data sources is stored in the ODBC.INI file. This file also contains two sections. The first section shows the data source (database) and its associated driver, for example, C:\RBWIN\SAMPLE=RB51_16. The data source name is its location. The location of a data source includes the drive and directory location of the database files as well as the database name. The second section specifies the name of the database, [C:\RBWIN\SAMPLE], and the location of the associated driver, Driver=C:\WINDOWS\SYSTEM\RB51_16.DLL. A description of the database is optional for R:BASE. ;-------------------------------------------------------------------- ; WARNING: Do not make changes to this file without using either the ; ODBC Setup program, the ODBC Administrator, or other ; utilities provided for maintaining installed drivers and ; data sources. ; ; Changing these files directly could result in a loss of ; information required by ODBC to execute. ;-------------------------------------------------------------------- [ODBC Data Sources] C:\RBWIN\SAMPLE=RB51_16 [C:\RBWIN\SAMPLE] Driver=C:\WINDOWS\SYSTEM\RB51_16.DLL Description= The name of the driver does not have to match the name of the actual driver file as it does in this example. The name you put in brackets for the driver in the ODBCINST.INI file, however, has to be the same name referenced in the ODBC.INI file in the ODBC Drivers section and in the ODBC Data Sources sections. The ODBC administrator program coordinates the information about the data sources and the associated data drivers. It is a Windows program used to update the ODBC INI file. The administrator allows the user to link the appropriate driver with the database and stores the information in the ODBC.INI file. The administrator does not verify that a driver is in the location you've specified or that the database resides in the location you designate during setup. The driver and database locations are checked when an actual link is attempted, for example, when R:BASE 5.1 tries to connect to another database or when Crystal Reports tries to log on to a database to create a new report. Following are two typical scenarios and the ODBC error messages you might encounter if the players are not correct. Situation 1: I have a database named SAMPLE in my C:\RBWIN directory. The database was recently upgraded to R:BASE 5.1 from 4.5++. In Crystal Reports, I try running an existing report based on this database and I get an error message. ODBC error: [Microsoft][ODBC DLL] Specified driver could not be loaded What's wrong? I ran this report last week and everything was fine. The solution: The ODBC.INI file still has the driver named R:BASE45 specified for this database. The ODBC.INI file reads as follows: [ODBC Data Sources] C:\RBWIN\SAMPLE=R:BASE45 [C:\RBWIN\SAMPLE] Driver=C:\WINDOWS\SYSTEM\RBASE45.DLL The ODBC.INI file needs to be corrected to read: [ODBC Data Sources] C:\RBWIN\SAMPLE=RB51_16 [c:\RBWIN\SAMPLE] Driver=c:\WINDOWS\SYSTEM\RB51_16.DLL Description= To correct this problem: 1.Start the ODBC administrator program. 2.From the "Data Sources" dialog box, select the data source reference for the C:\RBWIN\SAMPLE database and click the Delete button. 3.Click the Yes button to the question "Are you sure you want to remove the C:\RBWIN\SAMPLE data source?" 4.From the "Data Sources" dialog box, click the Add button. 5.From the "Add Data Source" dialog box select the RB51_16 driver, and click the OK button. 6.The "Microrim R:BASE Driver Setup" dialog box opens. In the "Database Name" dialog box, enter the database name C:\RBWIN\SAMPLE and click the OK button. 7.The database C:\RBWIN\SAMPLE now references the RB51_16 driver. Close the "Data Sources" dialog box. Situation 2: I was using the ODBC connectivity in R:BASE 5.1 to connect to a database named CONCOMP on the network server. The network administrator added a new server and now, when I try connecting to this database in R:BASE 5.1, I get the following error message: ODBC error: [Microsoft][ODBC DLL] - ERROR- Illegal database name Why can't I connect to this database any more? It used to work just fine. The solution: When the network administrator added the new server, the drive letters for the network drives changed. The CONCOMP database is no longer located on drive G:, it is now on drive H: ODBC can't find the data source in the location specified by the ODBC.INI file. To correct this problem, follow the steps outlined above to delete the data source and reenter it using the new path.