Overview

The ODBC Desktop Database Drivers 3.0 are designed for use on Microsoft Windows 95 or later, or Windows NT 3.51 or later. Only 32-bit applications are supported on Windows 95 or later; 16-bit and 32-bit applications are supported on Windows NT 3.51 or later. The ODBC drivers on Windows NT 3.51 or later support 16-bit applications by the use of thunking layers.

The ODBC Desktop Database Drivers include 32-bit drivers for Microsoft Access, dBASE, Microsoft Excel, Microsoft FoxPro, Paradox, and Text. No 16-bit drivers are included.

The application/driver architecture on Windows 95 or later is:

Application (32-bit)
|
ODBC Driver Manager
(ODBC32.DLL)
|
ODBC Desktop Database Driver
(ODBCJT32.DLL, MSJT3032.DLL, 32-bit Driver ISAM)
|
database

The application/driver architecture on Windows NT 3.51 or later is:

Application (16-bit)	     Application (32-bit)

|	|
ODBC Driver Manager
(ODBC.DLL)
|	|
16-Bit ODBC Generic Thunking DLL
(ODBC16GT.DLL)
|	|
32-Bit ODBC Generic Thunking DLL
(ODBC32GT.DLL)
|	|
ODBC Driver Manager
(ODBC32.DLL)
|	|
ODBC Desktop Database Driver
(ODBCJT32.DLL, MSJT2032.DLL, 32-bit Driver ISAM)

|
database


Driver ISAM Files

The ODBC Desktop Database Drivers include ISAM files.  Note that 16-bit ISAMs have been deleted, and 32-bit ISAMs have been renamed. Support for Microsoft Access 7.0, dBASE V (dBASE for Windows), and Paradox 5.0 (Paradox for Windows) is new. These files are as follows:

Driver	32-bit ISAM	Versions
Microsoft Access	None (Included in MSJT3032.DLL)	Microsoft Access version 7.0
Microsoft Access	MSRD2X32.DLL	Microsoft Access versions 1.0, 1.1, 2.0
dBase	MSXB3032.DLL	dBase versions III, IV, and V (dBASE for Windows)
Microsoft Excel	MSXL3032.DLL	Microsoft Excel versions 3.0, 4.0, 5.0   (For versions earlier than 3.0, see note below)
Microsoft FoxPro	MSXB3032.DLL	Microsoft FoxPro versions 2.0, 2.5, 2.6
Paradox	MSPX3032.DLL	Paradox versions 3.5, 4.0, 4.5, and 5.0 (Paradox for Windows)
Text	MSTX3032.DLL	ASCII Text


ODBC Component Files

The following table lists the files required by each component of the ODBC Desktop Database Drivers. Some files are required by more than one component. These files must be redistributed if you intend to redistribute any of the ODBC Desktop Database Drivers with your commercial application.

The following files are common for each of the ODBC Desktop Database Drivers:

CTL3D32.DLL (Windows NT only) DS16GT.DLL DS32GT.DLL MSJINT32.DLL MSJT3032.DLL MSJTER32.DLL MSVCRT20.DLL (Windows NT only) ODBC16GT.DLL ODBC32.DLL ODBC32GT.DLL ODBCCP32.CPL ODBCCP32.DLL  ODBCCR32.DLL	ODBCINST.CNT ODBCINST.HLP ODBCINT.DLL  ODBCJET.HLP ODBCJET.CNT ODBCJI32.DLL ODBCJT32.DLL ODBCJTNW.HLP ODBCJTNW.CNT ODBCTL32.DLL VEN2232.OLB VBAJET32.DLL VBAR2232.DLL
The following files are unique to each driver:

Microsoft Access	MSRD2X32.DLL
dBASE	MSXB3032.DLL ODDBSE32.DLL
Microsoft Excel	MSXL3032.DLL ODEXL32.DLL
Microsoft FoxPro	MSXB3032.DLL ODFOX32.DLL
Paradox	MSPX3032.DLL ODPDX32.DLL
Text	MSTX3032.DLL ODTEXT32.DLL


Software Requirements

New software requirements for the Microsoft ODBC Desktop Database Drivers are as follows:

•	The 32-bit ODBC Driver Manager, version 2.5 or later (ODBC32.DLL). Note that this file is included with the ODBC Desktop Database Drivers.

•	Microsoft Windows 95 or later, or Windows NT 3.51 or later.


Base Address of Drivers

Each of the ODBC Desktop Database Drivers has been linked with a base address of 0x04c00000.


Data Source Conversion

The 32-bit data sources used with the ODBC Desktop Database Drivers version 2.0 are automatically converted to new 32-bit data sources for version 3.0 drivers. No conversion is provided for 16-bit data sources. To change a 16-bit data source to a 32-bit data source, create a new 32-bit data source, then (optionally) delete the old 16-bit data source.  A 32-bit data source and a 16-bit data source cannot share the same name.


Setting Up Drivers

Drivers can no longer be added or deleted from the Control Panel or Administrator. The Add and Delete buttons have been removed from the Drivers dialog box that is displayed when the ODBC icon in the Control Panel (or Administrator) is chosen, then the Drivers button in the Data Sources dialog box is chosen. Adding or deleting drivers is only supported during installation of the ODBC Desktop Database Drivers.


Adding a System Data Source

A data source can be set up with a system data-source name (DSN) that can be used by more than one user on the same machine. The system DSN can also be used by a system-wide service, which can then gain access to the data source even if no user is logged onto the machine.

1.	Double click the Control Panel icon. In the Control Panel window, double-click the ODBC icon.

2.	In the Data Sources dialog box, choose the System DSN button.

3.	In the System Data Sources dialog box, choose the Add button.

4.	In the Add Data Source dialog box, select the driver’s name from the Installed ODBC Drivers list and choose OK.

5.	In the ODBC Setup dialog box, enter information to set up the data source. (Note that the description entry cannot exceed 79 characters). Choose OK.


Extensions List Setup Option

When the Text driver is used, the Extensions List box lists the filename extensions of the text files to be used in the data source.  The Default is (*.*). When the Default check box is checked, all files in the directory will be used in the data source.  To use only those files with certain extensions, clear the Default (*.*) check box and add each extension you want to use.

To add an extension, type the extension in the Extension box and click the Add button.  The extension must use the format *.xxx.  For example, to use .DAT files, type the extension *.DAT.  To remove an extension, highlight the extension in the Extensions list and click the Remove button. Removing all extensions is like checking the Default (*.*) check box: all files will be displayed.


Product Support

CompuServe

The Microsoft Connection on CompuServe provides online technical information for Microsoft products, including the ODBC Desktop Database Drivers. With the Microsoft Connection, you can exchange messages with Microsoft professionals and experienced Microsoft users, and you can download free software—such as patches, tools, and add-ons—provided by Microsoft and CompuServe members.

By using the Microsoft Connection, you can access the Microsoft Developer Services area. You are encouraged to use this area to speak directly to Microsoft about developer-related issues. The Microsoft Developer Services area offers the following advantages:

•	Developer Forums    The ODBC section of the Windows Extension (WinEXT) forum provides information about the ODBC API, application development, and driver development (GO WINEXT). The ODBC Dsktop Drivers section of the WinEXT forum provides information about the use of the ODBC Desktop Database Drivers. The section leads for these sections are from Microsoft Product Support and can help answer your questions about the Desktop Database Drivers.

•	Confidential Technical Service Requests    Microsoft offers private (fee-based per incident) technical support to help solve your more complex development problems. For more details, see the Microsoft Developer Services area.

•	Microsoft Knowledge Base    This up-to-date reference tool, compiled by Microsoft Product Support, contains developer-specific technical information about Microsoft products (GO MSKB).

To connect to the Microsoft Connection, type GO MICROSOFT at the CompuServe “!” prompt. For information about establishing a CompuServe account, call (800) 848-8199, 8:00 A.M. to 10:00 P.M. EST. Ask for operator 230 and receive a $15 connect-time usage credit.

Support Plans

Microsoft also offers pay-as-you-go telephone support from a Microsoft engineer, and a variety of annual paid support plans. In the United States, call (800) 936-3500 for further information on Microsoft support options. Outside of the United States, contact your local Microsoft Subsidiary for information regarding the availability of these products and services.


Unsupported Data Formats

This release of the ODBC Desktop Database Drivers 3.0 does not support the following data sources:

•	Btrieve

•	EMS

•	FoxPro 3.0

•	Lotus 1-2-3


Create Database Button

When the Microsoft Access driver is used, the Create button may be pressed to create a new database. A database created using the Create button will only work with Microsoft Access 7.0.


CREATE TABLE Statement Limitations

When the Paradox driver is used, columns cannot be added once an index has been defined on a table. If the first column of the argument list of a CREATE TABLE statement created an index, a second column cannot be included in the argument list.


Identifiers Limitations

The shorthand form of the reserved words listed in the SQL grammar in Appendix C of the Microsoft ODBC Programmer's Reference should not be used as identifiers (that is, table or column names), unless you surround the word in back quotes (`).


INSERT Statement  Limitations

When a dBASE, Microsoft Excel, Microsoft FoxPro, Paradox, or Text driver is used, inserting a zero-length string into a column actually inserts a NULL instead.

When the Microsoft Excel driver is used, inserting a NULL into a column of the first row of the table, when the column has a data type other than SQL_VARCHAR, will cause the data type of the column to change to SQL_VARCHAR.


Microsoft Access Data Types

The GUID data type has been added as a Microsoft Access data type.

Microsoft Access  data type	Data type (CREATETABLE)	ODBC SQL data type
GUID	BINARY	SQL_LONGBINARY


dBASE Data Types (Advanced)

Data types have been added for dBASE 5.0 support that are not supported for earlier versions of dBASE. The dBASE data types are listed below.

dBASE data type	ODBC data type
CHAR	SQL_VARCHAR
DATE	SQL_DATE
FLOAT *	SQL_DOUBLE
LOGICAL	SQL_BIT
MEMO	SQL_LONGVARCHAR
NUMERIC (BCD)	SQL_DOUBLE
OLEOBJECT *	SQL_LONGBINARY
* Only valid for dBASE version 5.x


Paradox Data Types (Advanced)

Data types have been added for Paradox 5.x support that are not supported for earlier versions of Paradox. The Paradox data types are listed below.

Paradox data type	ODBC data type
ALPHANUMERIC	SQL_VARCHAR
AUTOINCREMENT #	SQL_INTEGER
BCD #	SQL_DOUBLE
BYTES #	SQL_BINARY
DATE	SQL_DATE
IMAGE *	SQL_LONGVARBINARY
LOGICAL #	SQL_BIT
LONG #	SQL_INTEGER
MEMO	SQL_LONGVARCHAR
MONEY #	SQL_DOUBLE
NUMBER	SQL_DOUBLE
SHORT	SQL_SMALLINT
TIME #	SQL_TIMESTAMP
TIMESTAMP #	SQL_TIMESTAMP
* Only valid for Paradox versions 4.x and 5.x.
# Only valid for Paradox versions 5.x.


Data Type Limitations

BIT data types	With the Microsoft ODBC Desktop Database Drivers 2.0, TRUE for a BIT data type was represented as -1, not 1, so comparisons might not operate properly. BIT Columns would display as 0 or 1 when a SELECT was performed, but a query making a direct comparison of a BIT data type to the number “1” would not succeed. If a direct comparison had to be made, the comparison should have been made to TRUE or <>0. This is not true for the Microsoft ODBC Desktop Database Drivers 3.0. TRUE for a BIT data type is represented as 1. Direct comparisons can be made to 1.
TEXT data type	When the Microsoft Excel driver is used, inserting a NULL into a column with a data type other than SQL_VARCHAR will cause the data type of the column to change to SQL_VARCHAR.
Zero-length strings	When a dBASE, Microsoft Excel, Microsoft FoxPro, Paradox, or Text driver is used, inserting a zero-length string into a column actually inserts a NULL instead.


Error Messages

Error messages returned by the Driver Manager have the following format: [Microsoft][ODBC Driver Manager] message-text, not [Microsoft][ODBC DLL] message-text.


SQLGetInfo Returned Values

The following table lists the C-language #define values for the fInfoType argument to SQLGetInfo for which the returned values have changed in version 3.0 of the ODBC Desktop Database.

SQL_DBMS_VER

SQL_DRIVER_ODBC_VER

SQL_DRIVER_VER

SQL_LIKE_ESCAPE_CLAUSE

SQL_OJ_CAPABILITIES

SQL_TIMEDATE_FUNCTIONS


SQL_DBMS_VER

"1.0", "1.1", "2.0", or "7.0"  (Microsoft Access)
"3.0", "4.0", or “5.0”  (dBASE)
"3.0", "4.0", or "5.0"  (Microsoft Excel)
"2.0", "2.5", or "2.6"  (Microsoft FoxPro)
"3.x", "4.x", or “5.x” (Paradox)
"1.0"  (Text)


SQL_DRIVER_ODBC_VER

"2.50"


SQL_DRIVER_VER

" 2.99.nnnn"  (nnnn specifies the build date.)


SQL_LIKE_ESCAPE_CLAUSE

"N"


SQL_OJ_CAPABILITIES

This fInfoType did not appear in ODBC 2.0. It was added for ODBC 2.10.

SQL_OJ_LEFT
SQL_OJ_RIGHT
SQL_OJ_NOT_ORDERED
SQL_OJ_INNER
SQL_OJ_ALL_COMPARISON_OPS


SQL_TIMEDATE_FUNCTIONS

The dBASE, Microsoft FoxPro, and Paradox drivers do not support the SQL_FN_TD_CURDATE, SQL_FN_TD_CURTIME, or SQL_FN_TD_NOW options for SQL_TIMEDATE_FUNCTIONS.

SQL_FN_TD_CURDATE |
SQL_FN_TD_CURTIME |
SQL_FN_TD_DAYOFMONTH |
SQL_FN_TD_DAYOFWEEK |
SQL_FN_TD_DAYOFYEAR |
SQL_FN_TD_HOUR |
SQL_FN_TD_MINUTE |
SQL_FN_TD_MONTH |
SQL_FN_TD_NOW |
SQL_FN_TD_SECOND |
SQL_FN_TD_WEEK |
SQL_FN_TD_YEAR
(Microsoft Access, Microsoft Excel, Text)

SQL_FN_TD_DAYOFMONTH |
SQL_FN_TD_DAYOFWEEK |
SQL_FN_TD_DAYOFYEAR |
SQL_FN_TD_HOUR |
SQL_FN_TD_MINUTE |
SQL_FN_TD_MONTH |
SQL_FN_TD_SECOND |
SQL_FN_TD_WEEK |
SQL_FN_TD_YEAR
(dBASE, Microsoft FoxPro, Paradox)


SQLBindParameter

When the Microsoft Excel 3.0/4.0 driver or the Microsoft Excel 5.0 driver is used, executing an INSERT statement that uses a parameter to insert a NULL into a SQL_CHAR column will return SQL_SUCCESS_WITH_INFO with SQLSTATE 01004, “Data Truncated”.


SQLConfigDataSource

The SQLConfigDataSource function that is used to add, modify, or delete a data source dynamically has the following new definitions.

Keyword	Description
DRIVERID	An integer ID for the driver.   533 (dBASEV)   538 (Paradox5)
FIL	File type  (DBASE5; PARADOX 5.x)


SQLExtendedFetch

The ODBC Desktop Database Drivers do not perform bookmark checking. If an application passes an invalid bookmark into SQLExtendedFetch, the results are undefined. SQLExtendedFetch does not always return SQLSTATE S1111 (Invalid Bookmark).  It can also return SQLSTATE S1000 (General Error) with a message indicating a disk or network error.

When division-by-zero is performed in a SELECT statement, then SQLExtendedFetch is called, SQLExtendedFetch returns SQLSTATE 22012, "Division by zero", with SQL_SUCCESS_WITH_INFO. For each row affected by the division-by-zero, SQL_ROW_ERROR is returned in the rgfRowStatus buffer to indicate the error in retrieving data from the row. Rather than returning just SQLSTATE 22012, "Division by zero", SQLExtendedFetch should return SQLSTATE 01S01, "Error in Row", then SQLSTATE 22012, "Division by zero". Both should be returned with SQL_SUCCESS_WITH_INFO.


SQLSetPos

When the Paradox driver is used, performing a positioned update with SQLSetPos (with an fOption of SQL_REFRESH, SQL_UPDATE, SQL_DELETE, or SQL_ADD) against a table with no index will return SQLSTATE 42000, “Syntax error or access violation”. An error message will indicate that the database cannot be updated because it is read-only. This error message will be returned even if the database is not read-only.


SQLTables

When the Microsoft Excel 3.0/4.0 driver is used, if you call SQLTables with a value for szTableQualifier that is not the name of an existing table, the driver will create a table with that name.