Copyright: © Visigenic Software, Inc.


Contents

Welcome to the online help for the Visigenic ODBC DriverSet, release 1.1. You can find information by selecting a topic area, or by choosing a driver to view a list of related topics. Go to the Dialog Boxes section at the bottom of the screen to resolve interface questions.

Look here to find out information about:

   ODBC DriverSet Basics

   Setting Up a Driver

   Adding and Modifying Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types

   Scalar Functions with ODBC

Find out all the information about the:

Informix 5 Driver	Ingres 6.4 Driver

Oracle7 Driver	Sybase DBLib Driver

Sybase SQL Server 10 Driver

* refer to the Visigenic ODBC DriverSet 1.1 Reference Manual  for information on all other drivers.

   Dialog Boxes

   Index


ODBC DriverSet Basics

Choose one of the following:

    What is the ODBC DriverSet?

    Understanding the ODBC.INI File

    ODBC Conformance Levels

    Error Messages

    Accessing Translation Libraries


Setting Up a Driver

Select a driver for driver-specific setup information:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


 Adding and Modifying Data Sources

Look here to discover how to add and modify data sources for the Visigenic ODBC drivers. Click the triangle button in the upper left corner to view the ODBC Driver Setup dialog box for your driver.

A data source definition identifies the location of data that may include a network library, server, database, and other attributes. In order to connect to a data source, the Driver Manager looks at your ODBC.INI file for specific connection information.

The ODBC.INI file is an initialization file used by the Driver Manager and ODBC drivers. This file contains information about each data source and its associated driver. Generally, before you can connect to a data source, its connection information must be added to this file.

You add and configure data sources using the ODBC Administrator. The ODBC Administrator then updates your ODBC.INI file, located in the WINDOWS directory, to reflect your data source connection information. As you add data sources, the ODBC Administrator adds the information to this file for you; that is, you should NEVER modify the ODBC.INI file directly.

Click HERE for steps to add a data source.

Click HERE for steps to modify a data source.


Steps for Adding a Data Source

Look below to learn general steps for adding a data source.

1.  To start the ODBC Administrator, double-click the ODBC Administrator icon in the Windows Control Panel. A Data Sources dialog box appears.

NOTE:  You can also add data sources when you install the DriverSet. In either case, the steps that you follow are the same.

2.  When you see the Data Sources dialog box, click the Add button. The Add Data Source dialog box appears.

3.  Select a driver, and then click OK. The Visigenic ODBC Setup dialog box for your driver appears.

4.  Fill in the fields of the dialog box as appropriate, and click OK to add this data source. When you click OK, the Data Sources dialog box appears.

After you click OK, the ODBC Administrator updates your ODBC.INI file. The values that you enter become the default data source connection values for this data source. That is, when you connect to the data source using either a dialog box or connection string, these values become the default entries for the data source connection.


Steps for Modifying a Data Source

Look below to discover general steps for modifying a data source.

1.  Invoke the ODBC Administrator. The Data Sources dialog box appears.

2.  In the Data Sources dialog box, select the data source you want to modify and then click the Setup button. The Visigenic ODBC Setup dialog box appears for the driver you selected.

3.  Modify the applicable data source fields, and then click OK.

When you have finished modifying the information in this dialog box, the ODBC Administrator updates your ODBC.INI file.


 Connecting to a Data Source

Look below for instructions on connecting to a data source. Click on the triangle button in the upper left corner to view the Connect dialog box for your driver.

An ODBC application can pass connection information in a number of ways. For example, the application may have the driver always prompt the user for connection information. Or the application may expect a connection string that specifies the data source connection. How you connect to a data source depends on the connection method that your ODBC application uses.

One common way of connecting to a data source is through the SQL Data Sources dialog box. That dialog box prompts you for the appropriate data source connection information as shown below.

1.  When you see the SQL Data Sources dialog box, select a data source and then click OK. The ODBC Connect dialog box for the appropriate driver appears.

2.  Fill in the appropriate information for the dialog box as indicated, and then click OK.

Once the connection information is verified, your application can access the information that the data source contains using the appropriate driver.


Connection String Attributes

Choose a driver from this list for specific information:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


ODBC Conformance Levels

Choose a driver from this list for specific information:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


Mapping Data Types

Choose a driver from this list for specific information:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


Scalar Functions with ODBC

Choose from the following topics for general information on ODBC Scalar Functions.  Refer to the driver for specific information.

   String Functions

   Numeric Functions

   Time and Date Functions

   System Functions

   Explicit Data Type Conversion


DriverSet Dialog Boxes

Choose a dialog box from the list below.

   Data Sources Dialog Box

   Add Data Source Dialog Box

   ODBC Driver Setup Dialog Box

   ODBC Driver Connect Dialog Box


ODBC Driver Setup Dialog Box

Choose a driver to view the specific dialog box:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


ODBC Driver Connect Dialog Box

Choose a driver to view the specific dialog box:

   Informix 5 Driver

   Ingres 6.4 Driver

   Oracle7 Driver

   Sybase DBLib Driver

   Sybase SQL Server 10 Driver


Informix 5 Driver Topics

Choose a topic from this list:

   Setting Up a Driver

   Setting Up Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types

   Advanced User Notes


Ingres 6.4 Driver Topics

Choose a topic from this list:

   Setting Up a Driver

   Setting Up Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types


Oracle7 Driver Topics

Choose a topic from this list:

   Setting Up a Driver

   Setting Up Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types

   Advanced User Notes


Sybase DBLib Driver Topics

Choose a topic from this list:

   Setting Up a Driver

   Setting Up Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types

   Advanced User Notes


Sybase SQL Server 10 Driver Topics

Choose a topic from this list:

   Setting Up a Driver

   Setting Up Data Sources

   Connecting to a Data Source

   Connection String Attributes

   ODBC Conformance Levels

   Mapping Data Types

   Advanced User Notes


 What is the ODBC DriverSet?

Look below for basic information about the Visigenic ODBC DriverSet. Click on the triangle button in the upper left corner to learn more DriverSet basics.

ODBC stands for Open Database Connectivity, an interface that allows applications to access data in database management systems (DBMSs) using Structured Query Language (SQL) as a standard for accessing data. The ODBC specification defines a vendor-independent API for accessing data stored in relational and non-relational databases. The Core functions and SQL grammar are based on work done by the X/Open SQL Access Group. The ODBC architecture is made up of four components:

    Database Application.  The database application calls functions defined in the ODBC API to access a data source.

    Driver Manager.  The Driver Manager implements the ODBC API and provides information to an application (such as a list of available data sources and drivers), loads drivers dynamically as they are needed, and provides argument and state transition checking.

    Drivers.  Each driver processes ODBC function calls and manages exchanges between an application and a data source.

    Data Source.  A data source contains the data that an application needs to access. The data source includes the data, the database management system (DBMS) in which the data is stored, the platform on which the DBMS resides, and the network (if any) used to access the DBMS.

With the Visigenic DriverSet, the cursor capabilities are implemented using the ODBC Cursor Library. The Cursor Library is a shared library that resides between the Driver Manager and the driver.

An ODBC-compliant driver allows you to communicate between an ODBC-compliant application and a DBMS. For example, the Oracle7 driver allows you to connect your ODBC-compliant application to an Oracle7 database.

The Visigenic ODBC DriverSet is made up of two ODBC components: the Driver Manager and a set of database drivers. With the ODBC DriverSet, you can access, query, and update data in a number of different databases.


 Understanding the ODBC.INI File

Look below for general information about the ODBC.INI file. WARNING: Users should use the ODBC Administrator to modify the ODBC.INI File. Click on the triangle button in the upper left corner to learn more DriverSet basics.

The ODBC.INI file is an initialization file used by the ODBC Driver Manager and ODBC drivers. The file is located in your WINDOWS directory. Although the ODBC.INI file is described in the following sections, Windows users should not modify this file---the ODBC Administrator program modifies it for you. The following sections are intended for informational purposes only.

Windows users should never modify the ODBC.INI file directly. The contents of this file are changed based on the data source setup and modifications you make using the ODBC Administrator. Modifying the ODBC.INI file directly may result in data source configuration errors.

The ODBC.INI file is made up of the following sections:

    ODBC Data Sources. This section lists the name of each data source and describes its associated driver.

    Data Source Specification. For each data source listed in the ODBC Data Sources section, there is a section that contains additional information about that data source.

    Default Data Source Specification. This section is optional and specifies the default data source to use when no data source is specified.

    ODBC Options. This section specifies the ODBC root directory and the ODBC options that may be enabled or disabled.


Sections in the ODBC.INI File

Choose a section for more information:

    ODBC Data Sources

    Data Source Specification

    Default Data Source Specification

    ODBC Options


 ODBC Data Sources

Look below for details on the ODBC Data Sources section of the ODBC.INI file. Click on areas of the syntax below for further information.

Each entry in the ODBC Data Sources section lists a data source and a description of the driver it uses. This section has the following format: (Click where the hand appears for more information)

_________________________________________

[ODBC Data Sources]
data-source-name [image] = driver-description

 = required
___________________________________________________

For example, to define an Agencies data source that uses the Oracle7 driver, the ODBC.INI entry would look like the following:

[ODBC Data Sources]

Agencies=Visigenic Oracle7 Driver


Data Source Name

The data source name identifies the data source to which the driver connects. You choose this name.


Driver Description

The driver description describes the driver to which the data source connects. This field is optional.


 Data Source Specification

Look below for details on the Data Source Specification section of the ODBC.INI file. Click on areas of the syntax below for further information.

Each data source listed in the ODBC Data Sources section has its own data source specification section. This section has the following format: (Click where the hand appears for more information)

__________________________

[data-source-name]
DRIVER = driver-path
KEYWORD = attribute

 = required

________________________________

For example, the data source called Agencies connects to a Sybase SQL Server 10 driver called VSSYB.DLL. The database that Agencies accesses is also called agencies and it resides on the SYBASE10 server. The data source specification entry for the Agencies data source would look like the following:

[Agencies]

Driver=C:\WINDOWS\SYSTEM\VSSYB.DLL

Server=SYBASE10

Database=agencies

UID=marvin
AllowQuotedIdentifiers=1

In this example, the driver-specific keywords for the Sybase SQL Server 10 driver are Server, Database, UID, and AllowQuotedIdentifiers.


Data Source Name

The data source name is the name of the data source, as specified in the ODBC Data Sources section of the ODBC.INI file.


Driver Path

The driver path is the dynamic link library.


Attribute

The attribute specifies the value for the keyword. Each driver has its own set of keywords. For driver-specific keywords and attributes, refer to the Adding and Modifying Data Sources section, and select a driver to view its associated dialog box.


 Default Data Source Specification

Look below for details on the optional Default Data Source Specification section of the ODBC.INI file.

This section is optional. The Default Data Source specification contains information about the default data source. This data source is called Default and has the same format as any other data source specification section. However, the Default data source is not listed in the ODBC Data Sources section.

For example, the following sample shows a Default data source specification entry for an Oracle database.

[Default]

Driver=C:\WINDOWS\SYSTEM\VSORAC.DLL

Server=t:mickey:customers

UID=marvin

In this example, the driver-specific keywords for the Oracle7 driver are Server and UID. The Server keyword identifies the SQL*Net connect string for the ORACLE7 server called customers.


 ODBC Options

Look below for details on the ODBC Options section of the ODBC.INI file.

The ODBC Options section indicates whether tracing is enabled or disabled. With tracing, all ODBC function calls made from an application can be logged to the specified trace file. This section has the following format (Click where the hand appears for more information):

__________________________

[ODBC]
Trace = 0|1
TraceFile = tracefile-path
TraceAutoStop = 0|1
__________________________

For example, the following sample shows an entry for the [ODBC] section.

[ODBC]

Trace=1

TraceFile=C:\WINDOWS\LOG\TRACE.LOG

TraceAutoStop=0


Trace

Indicates whether tracing is enabled. If the Trace keyword is set to 0, tracing is disabled. If the Trace keyword is set to 1, tracing is enabled.


TraceFile

The name of the specified trace file that is logging the ODBC function calls. The tracefile-path specifies the full path to the trace file. If a trace file is not specified and tracing is enabled, logging information is written to the sql.log file located in your current directory.


TraceAutoStop

Indicates whether tracing is enabled or disabled when an application calls the SQLFreeEnv() function. If the TraceAutoStop keyword is set to 0, tracing is not automatically disabled. If the TraceAutoStop keyword is set to 1, the Trace keyword in the odbc.ini file is set to 0. On Windows, all other concurrent ODBC applications will have tracing disabled.


 ODBC Conformance Levels

Look below to learn the ODBC conformance levels for ODBC drivers. Click on the triangle button in the upper left corner for driver-specific information.

ODBC defines two different conformance standards for drivers: the API conformance standard and the SQL conformance standard. Each conformance standard is made up of three levels. These levels help application and driver developers establish standard sets of functionality.


 API Conformance Levels

Look below for ODBC API conformance levels and API functions. Click on the triangle button in the upper left corner for driver-specific information.

The API conformance standard is made up of three levels:

    Core API.   A set of core functions that correspond to the functions in the X/Open SQL Access Group Call Level Interface specification.

    Level 1 API.   Core API functionality plus all Level 1 functionality.

    Level 2 API.   Core and Level 1 API functionality plus all Level 2 functionality.

ODBC API Functions

The Visigenic drivers support all Core and Level 1 functions. In addition, each driver supports a key set of the Level 2 functions. For a list of supported Level 2 functions by driver, refer to the appropriate driver's ODBC Conformance Levels section. Click on a level to view the API functions defined to the level.

Core Level	Level 1	Level 2


Core Level API Functions

The following are Core API functions:

SQLAllocConnect()	SQLExecute()

SQLAllocEnv()	SQLFetch()

SQLAllocStmt()	SQLFreeConnect()

SQLBindCol()	SQLFreeEnv()

SQLCancel()	SQLFreeStmt()

SQLColAttributes()	SQLGetCursorName()

SQLConnect()	SQLNumResultCols()

SQLDescribeCol()	SQLPrepare()

SQLDisconnect()	SQLRowCount()

SQLError()	SQLSetCursorName()

SQLExecDirect()	SQLTransact()


Level 1 API Functions

The following are Level 1 API functions:

SQLBindParameter()	SQLGetTypeInfo()

SQLColumns()	SQLParamData()

SQLDriverConnect()	SQLPutData()

SQLGetConnectOption()	SQLSetConnectOption()

SQLGetData()	SQLSetStmtOption()

SQLGetInfo()	SQLSpecialColumns ()

SQLGetFunctions()	SQLStatistics()

SQLGetStmtOption()	SQLTables()


Level 2 API Functions

The following are Level 2 API functions:

SQLBrowseConnect()	SQLNumParams()

SQLColumnPrivileges()	SQLParamOptions()

SQLDataSources()	SQLPrimaryKeys()

SQLDescribeParam()	SQLProcedureColumns()

SQLDrivers()	SQLProcedures()

SQLExtendedFetch()	SQLSetPos()

SQLForeignKeys()	SQLSetScrollOptions()

SQLMoreResults()	SQLTablePrivileges()

SQLNativeSql()


 SQL Conformance Levels

Look below to learn the general SQL conformance levels for ODBC. Click on the triangle button in the upper left corner for driver-specific information.

The SQL conformance standard is made up of three levels:

    Minimum Conformance.  This level is designed to meet basic ODBC conformance.

    Core Conformance.  This level roughly corresponds to the X/Open SQL Access Group SQL CAE specification (1995).

    Extended Conformance.  This level provides common DBMS extensions to SQL.

ODBC SQL Grammar

The Visigenic drivers support Minimum and Core SQL grammar. In addition, each driver supports a number of extended SQL statements, expressions, and data types. For a list of supported Extended SQL grammar by driver, refer to the appropriate driver's ODBC Conformance Levels  section. Click on a level for further information.

Minimum          Core          Extended


 Minimum SQL Grammar

Look below to find out about the Minimum SQL conformance levels for ODBC. Click on the triangle button in the upper left corner for driver-specific information.

The Minimum level of SQL grammar consists of the following statements, expressions, and data types:

    Data Definition Language (DDL): CREATE TABLE and DROP TABLE.

    Data Manipulation Language (DML): simple SELECT, INSERT, UPDATE, SEARCHED, and DELETE SEARCHED.

    Expressions: simple (such as A>B+C).

    Data types: CHAR, VARCHAR, or LONG VARCHAR.


 Core SQL Grammar

Look below to find out about the Core SQL conformance levels for ODBC. Click on the triangle button in the upper left corner for driver-specific information.

The Core level of SQL grammar consists of the following statements, expressions, and data types:

    Minimum SQL grammar and data types.

    Data Definition Language (DDL): ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT, and REVOKE.

    Data Manipulation Language (DML): full SELECT.

    Expressions: subquery, set functions such as SUM and MIN.

    Data Types: DECIMAL, NUMERIC, SMALLINT, INTEGER, REAL, FLOAT, DOUBLE PRECISION.


 Extended SQL Grammar

Look below to find out about the Extended SQL conformance levels for ODBC. Click on the triangle button in the upper left corner for driver-specific information.

The Extended level of SQL grammar consists of the following statements, expressions, and data types:

    Minimum and Core SQL grammar and data types.

    Data Manipulation Language (DML): outer joins, positioned UPDATE, positioned DELETE, SELECT FOR UPDATE, and unions.

    Expressions: scalar functions such as SUBSTRING, ABS, date, time, and timestamp literals.

    Data types: BIT, TINYINT, BIGINT, BINARY, VARBINARY, LONG VARBINARY, DATE, TIME, TIMESTAMP.

    Batch SQL statements.

    Procedure calls.


 Error Messages

Look below for an explanation of the structure of ODBC error messages. Click on the triangle button in the upper left corner to learn more DriverSet basics.

Since ODBC is based on a layered architecture, an error message must not only explain the error but also identify the component in which the error occurred. ODBC error messages have two different formats: one format for errors that occur in a data source, and one format for errors that occur in any other ODBC component. ODBC error messages use the format shown below. Note that blue squares indicate items that appear when the error is from a data source, and red squares indicate items that appear when the error is from another ODBC component. Unmarked items appear in both instances. (Click where the hand appears for more information.)

___________________________________________

[vendor-identifier]   [ODBC-component-identifier]
[data-source-identifier]
data-source-text,
component-text

 =   Error message occurred
        in the data source
 =   Error message occurred
        in a component

_____________________________________________________

For example, an error message from a data source might look like the following:

"[Visigenic][ODBC Informix Driver][Informix] User's password is not correct for the database server."

Or an error message from a Visigenic driver might look like the following:

"[Visigenic][ODBC ORACLE7 Server Driver]Duplicate cursor name"


Vendor Identifier

The vendor of the component in which the error occurred, or that received the error directly from the data source.


ODBC Component Identifier

The component in which the error occurred, or that received the error directly from the data source.


Data Source Identifier

The data source in which the error occurred. This only appears when the error occurred in the data source.


Data Source Text

Text generated by the data source. This only appears when the error occurs in the data source.


Component Text

Text generated by the ODBC component. This only appears when the error occurs in a component.


  Accessing Translation Libraries

Look below for information about how to access translation libraries with Visigenic drivers.

Visigenic drivers are able to call a translation library (on Windows, a Translation Dynamic Link Library). Visigenic drivers can call a translation library using the SQL_TRANSLATE_DLL option for the SQLSetConnectOption() function.

A translation library is used when the client application and the data source store data in different formats. For example, the application might use a different character set than the data source. The translation library enables a driver to translate all data (such as data values, SQL statements, table names, row counts) that pass between the driver and the data source.

You can specify which translation library to use when you configure a data source. The translation library that you specify must be one that you supply---the Visigenic DriverSet does not provide a translation library.

The translation library appears as an option at the bottom of the Setup dialog box. This option appears in the same place on every Setup dialog box. Click on a driver below to see the Setup dialog box.

Informix 5 Driver	Ingres 6.4 Driver

Oracle7 Driver	Sybase DBLib Driver

Sybase SQL Server Driver


 Setting Up the Informix 5 Driver

Look below to discover setup and system requirement information for the Informix 5 driver. Click on the triangle button in the upper left corner to view topics related to the Informix 5 driver.

Although the Informix driver was installed during the installation procedure, you must confirm that your system has the appropriate software installed.

You must have the following Informix software installed on your systems:

    INFORMIX-NET on your Windows machine (client)

    ESQL/C Run Time on your Windows machine (client)

    One of the following database servers on your server machine:  INFORMIX-OnLine (Version 5.x, 6.x, or 7.x), or INFORMIX-SE (Version 5.x, 6.x, or 7.x)

For information on these Informix products, refer to the Informix documentation.

You must also check that your environment variables have been set in your AUTOEXEC.BAT file. The INFORMIXDIR and PATH environment variables should be set automatically when you install your Informix software, and the entries should be similar to the following:

SET INFORMIXDIR=C:\APPS\INFORMIX
SET PATH=%PATH%;%INFORMIXDIR%\BIN


 Setting Up the Ingres 6.4 Driver

Look below to discover setup and system requirement information for the Ingres 6.4 driver. Click on the triangle button in the upper left corner to view topics related to the Ingres 6.4 driver.

Although the Ingres driver was installed during the driver installation procedure, you must have CA-Ingres/Net 6.4 for Windows 3.1 installed on your system. You must also confirm that the II-SYSTEM environment variable is set in the AUTOEXEC.BAT file.

The Visigenic Ingres 6.4 Driver uses CA-Ingres/Net 6.4 to connect to remote databases. Therefore, remote node definitions and remote user authorizations must be set up and maintained using the CA-Ingres NETU utility as described in your CA-Ingres/Net documentation.

For information on this CA-Ingres product, refer to your CA-Ingres documentation set.

The II_SYSTEM environment variable should be set automatically when you install your CA-Ingres software. To ensure that this variable is set, you must check that your AUTOEXEC.BAT file has entries similar to the following:

SET II_SYSTEM=C:INGRES64
SET PATH=C:\INGRES\BIN;%PATH%


 Setting Up the Oracle7 Driver

Look below to discover setup and system requirement information for the Oracle7 driver. Click on the triangle button in the upper left corner to view topics related to the Oracle7 driver.

Although the Oracle7 driver was installed during the driver installation procedure, you must confirm that your system has the appropriate software installed. You must also check to see that your PATH is set correctly in your AUTOEXEC.BAT file.

To use the Oracle7 driver, you must have the following Oracle software installed on your system:

    ORACLE7 Server

    ORACLE SQL*Net (if you want to access remote databases)

For information on Oracle products, refer to your Oracle documentation set.

The PATH should be set automatically when you install your Oracle software. To ensure that the PATH is set, you must check that your AUTOEXEC.BAT file has an entry similar to the following:

SET PATH=%PATH%;C:\ ORAWIN \ BIN


 Setting Up the Sybase DBLib Driver

Look below to discover setup and system requirement information for the Sybase DBLib driver. Click on the triangle button in the upper left corner to view topics related to the Sybase DBLib driver.

The Sybase DBLib driver allows you to connect your ODBC-compliant application to a Sybase SQL Server 4.x database or a Sybase SQL Server 10 database. If you are a Sybase SQL Server 10 user, you may choose to use this driver because it can access both databases. However, you will not be able to take advantage of the extended functionality of the Sybase SQL Server 10 database. For detailed information on the differences between the Sybase DBLib driver and the Sybase SQL Server 10 driver, refer to Functional Differences Between the Sybase DBLib Driver and Sybase SQL Server 10 Driver.

NOTE:  To use the Sybase DBLib driver, the Post-Installation procedure must be performed by a database administrator. Refer to the ReadMe file for these instructions.

To use the Sybase DBLib driver, you must have the following Sybase software installed on your system:

    SYBASE SQL Server Database Server (server)

    SYBASE Winsock Net Library (provided by Visigenic)

    A protocol compatible with SYBASE Winsock Net Library on your Windows machine.

You can test that your Sybase network is working by using the WSYBPING tool provided with the SYBASE Client Library.

NOTE:  Although Visigenic supplies the Winsock Net Library, Sybase recommends that you use a Net Library that corresponds to a native TCP protocol stack, rather than a WINSOCK Net Library driver. Performance has been reported to improve with this configuration.

NOTE:  Be sure you have installed the Sybase Open Client libraries. Refer to the ReadMe file for instructions.

For information on these Sybase products, refer to your Sybase documentation set.

You must also check that the PATH has been set correctly in your AUTOEXEC.BAT file. The PATH should be set automatically when you install your Sybase software. Your AUTOEXEC.BAT file should have an entry similar to the following:

SET PATH=%PATH%;C:\SYB10\BIN


 Setting Up the Sybase SQL Server 10 Driver

Look below to discover setup and system requirement information for the Sybase SQL Server 10 driver. Click on the triangle button in the upper left corner to view topics related to the Sybase SQL Server 10 driver.

Although the Sybase SQL Server 10 driver was installed during the installation procedure, you must have the following Sybase software installed on your system:

    SYBASE Open Client Client-Library/C on your Windows machine (client)

    SYBASE Open Client Net-Library on your Windows machine

    SYBASE SQL Server 10 Database Engine on your server

You can test that your Sybase network is working by using the WSYBPING tool provided with the SYBASE Net-Library.

For information on these Sybase products, refer to your Sybase documentation set.

You must also confirm that the PATH is set appropriately in your AUTOEXEC.BAT file. The PATH should be set automatically when you install your Sybase software. Your AUTOEXEC.BAT file should have an entry similar to the following:

SET PATH=%PATH%;C:\SYB10\BIN


 Connection String Attributes for the Informix 5 Driver

Look below to learn the connection string attributes for the Informix 5 driver. Click on the triangle button in the upper left corner to view topics related to the Informix 5 driver.

Some applications may require a connection string that specifies data source connection information instead of using a dialog box to obtain this information. The connection string is made up of a number of attributes that specify how a driver connects to a data source. An attribute identifies a specific piece of information that the driver needs to know before it can make the appropriate data source connection. Each driver may have a different set of attributes but the connection string format is always the same. A connection string has the following format: (Click where the hand appears for more information)

______________________________________

DSN = data-source-name
[;HOSTNAME = value] [;SERVICE = value]
[;DATABASE = value] [;UID = value] [;PWD = value]

 = required
_______________________________________________

You must specify the data-source-name. However, all other attributes are optional. If you do not specify an attribute, that attribute defaults to the one that is specified in the data source specifications section (for the data source specified in the connection string) of your ODBC.INI file.

For example, a connection string that connects to the Windows stores data source would have the following attributes in the connection string:

"DSN=Stores;DATABASE=stores"

In this example, the database requested is stores.

In addition, a connection string that connects to the stores data source using the mickey server, could have the following attributes in the connection string:

"DSN=stores;HOSTNAME=mickey;SERVICE=sqlexec; DATABASE=stores;UID=kerri;PWD=secret"

In this example, the database requested is stores and the user ID is kerri.


Data Source Name

This name is listed in the ODBC Data Sources section, and has its own data source specifications section in the ODBC.INI file.


Hostname Value

The name of the machine that you want to access.


Service Value

The name of the service that you want to use.


Database Value

The name of the INFORMIX-OnLine or INFORMIX-SE database that contains the tables you want to access.


UID Value

The host user ID.


PWD Value

The user password for the host.


 Connection String Attributes for the Ingres 6.4 Driver

Look below to learn the connection string attributes for the Ingres 6.4 driver. Click on the triangle button in the upper left corner to view topics related to the Ingres 6.4 driver.

Some applications may require a connection string that specifies data source connection information instead of using a dialog box to obtain this information. The connection string is made up of a number of attributes that specify how a driver connects to a data source. An attribute identifies a specific piece of information that the driver needs to know before it can make the appropriate data source connection. Each driver may have a different set of attributes but the connection string format is always the same: (Click where the hand appears for more information)

______________________________________

DSN = data-source-name
[;SERVERNAME = name]
[;DATABASE = name]  [;UID = value]

 = required
_______________________________________________

You must specify the data-source-name and database-name. In addition, server-name is required when connecting to a remote database. If you do not specify an attribute, that attribute defaults to the one that is specified in the data source specifications section (for the data source specified in the connection string) of your ODBC.INI file.

For example, a connection string that connects to the Sales data source using a remote server would have the following attributes in the connection string:

"DSN=Sales;SERVERNAME=mickey;DATABASE=Sales;
;UID=tom"

In this example, the database requested is Sales, the server is mickey (the virtual node you defined using CA-Ingres/NETU), and the user name is tom.


ServerName Name

The name of the virtual node you defined using CA-Ingres/NETU.


Database Name

The name of the CA-Ingres database that contains the tables you want to access.


UID Value

The CA-Ingres database user ID.


 Connection String Attributes for the Oracle7 Driver

Look below to learn the connection string attributes for the Oracle7 driver. Click on the triangle button in the upper left corner to view topics related to the Oracle7 driver.

Some applications may require a connection string that specifies data source connection information instead of using a dialog box to obtain this information. The connection string is made up of a number of attributes that specify how a driver connects to a data source. An attribute identifies a specific piece of information that the driver needs to know before it can make the appropriate data source connection. Each driver may have a different set of attributes but the connection string format is always the same. A connection string has the following format: (Click where the hand appears for more information)

______________________________________

DSN = data-source-name
[;SERVER = value]  [;UID = value]
[;PWD = value]

 = required
_______________________________________________

You must specify the data-source-name. However, all other attributes are optional. If you do not specify an attribute, that attribute defaults to the one that is specified in the data source specifications section (for the data source specified in the connection string) of your ODBC.INI file.

For example, a connection string that connects to the Employees data source using the employees server, mickey host machine, and TCP/IP network would have the following attributes in the connection string:

"DSN=Employees;SERVER=t:mickey:employees;
UID=cindy;PWD=secret"


Server Value

The SQL*Net connect string that you use to connect to the Oracle7 engine.


UID Value

The host user ID.


PWD Value

The user password for the host.


 Connection String Attributes for the Sybase DBLib Driver

Look below to learn the connection string attributes for the Sybase DBLib driver. Click on the triangle button in the upper left corner to view topics related to the Sybase DBLib driver.

Some applications may require a connection string that specifies data source connection information instead of using a dialog box to obtain this information. The connection string is made up of a number of attributes that specify how a driver connects to a data source. An attribute identifies a specific piece of information that the driver needs to know before it can make the appropriate data source connection. Each driver may have a different set of attributes but the connection string format is always the same. A connection string has the following format: (Click where the hand appears for more information)

______________________________________

DSN = data-source-name
[;SERVER = value]  [;DATABASE = name]
[;UID = value]  [;PWD = value]

 = required
_______________________________________________

You must specify the data-source-name. However, all other attributes are optional. If you do not specify an attribute, that attribute defaults to the one that is specified in the data source specifications section (for the data source specified in the connection string) of your ODBC.INI file.

For example, a connection string that connects to the Pubs data source using the SYB database server would have the following attributes in the connection string:

"DSN=Pubs;SERVER=SYB;DATABASE=pubs;
UID=kelly;PWD=secret"

In this example, the database requested is pubs, the user name is kelly, and the password is secret.


 Connection String Attributes for the Sybase SQL Server 10 Driver

Look below to learn the connection string attributes for the Sybase SQL Server 10 driver. Click on the triangle button in the upper left corner to view topics related to the Sybase SQL Server 10 driver.

Some applications may require a connection string that specifies data source connection information instead of using a dialog box to obtain this information. The connection string is made up of a number of attributes that specify how a driver connects to a data source. An attribute identifies a specific piece of information that the driver needs to know before it can make the appropriate data source connection. Each driver may have a different set of attributes but the connection string format is always the same. A connection string has the following format: (Click where the hand appears for more information)

______________________________________

DSN = data-source-name
[;SERVER = value]  [;DATABASE = name]
[;UID = value]  [;PWD = value]

 = required
_______________________________________________

You must specify the data-source-name. However, all other attributes are optional. If you do not specify an attribute, that attribute defaults to the one that is specified in the data source specifications section (for the data source specified in the connection string) of your ODBC.INI file.

For example, a connection string that connects to the Pubs2 data source using the SYB10 database server would have the following attributes in the connection string:

"DSN=Pubs2;SERVER=SYB10;DATABASE=pubs2;
UID=lynn;PWD=secret"

In this example, the database requested is pubs2, the user name is lynn, and the password is secret.


Server Value

The name of the Sybase SQL Server engine that you want to use.


Database Name

The name of the Sybase SQL Server database that contains the tables you want to access.


UID Value

The Sybase SQL Server user ID. Depending on your system, this may be optional; that is, certain databases and tables may require this attribute for security purposes.


PWD Value

The user password for the host.


 ODBC Conformance Levels for the Informix 5 Driver

Look below to discover the ODBC conformance levels supported by the Informix 5 driver. See ODBC Conformance Levels for general information on the ODBC API and SQL conformance levels. Click on the triangle button in the upper left corner to view topics related to the Informix 5 driver.

Supported API Functions

The Informix 5 driver supports all Core and Level 1 API functions, and several options for Level 1 functions. The driver also supports several Level 2 functions.

SQL Conformance Level

The Informix 5 driver supports the Minimum SQL grammar and Core SQL grammar. The Informix driver supports the following ODBC extensions to SQL:

    Date, time, and timestamp data

    Outer joins

    Several numeric functions

    Several date functions

    The following string functions:

concat	length

    The user system function.

Click HERE for more information on the numeric, date, string, and system functions.


Options for Level 1 API Functions with the Informix 5 Driver

The driver supports the following options for the SQLGetConnectOption() and SQLSetConnectOption() Level 1 functions:

    SQL_ACCESS_MODE *

    SQL_AUTOCOMMIT

    SQL_CURRENT_QUALIFIER *

    SQL_ODBC_CURSORS

    SQL_OPT_TRACE

    SQL_OPT_TRACEFILE

    SQL_QUIET_MODE

    SQL_TRANSLATE_DLL

    SQL_TRANSLATE_OPTION

    SQL_TXN_ISOLATION *

*NOTE:  An Informix driver that connects to an INFORMIX-OnLine database server supports the SQL_TXN_ISOLATION for both the SQLGetConnectOption() and SQLSetConnectOption() functions. An Informix driver that connects to an INFORMIX-SE database server only supports the SQL_TXN_ISOLATION for the SQLGetConnectOption() function. In this case, the value returned is always SQL_TXN_READ_UNCOMMITTED.

* SQLGetConnectOption() only

The driver supports the following options for the SQLSetStmtOption() and SQLGetStmtOption() Level 1 functions:

    SQL_ASYNC_ENABLE * *

    SQL_BIND_TYPE

    SQL_CONCURRENCY

    SQL_CURSOR_TYPE

    SQL_MAX_ROWS

    SQL_NOSCAN

    SQL_QUERY_TIMEOUT *

    SQL_RETRIEVE_DATA

    SQL_ROW_NUMBER

    SQL_ROWSET_SIZE

    SQL_SIMULATE_CURSOR

*NOTE:  The value of the SQL_ASYNC_ENABLE option is always SQL_ASYNC_ENABLE_OFF.

* SQLGetStmtOption() only


Supported Level 2 Functions for the Informix 5 Driver

SQLBrowseConnect()	SQLNumParams()

SQLColumnPrivileges()	SQLPrimaryKeys()

SQLDataSources()*	SQLProcedureColumns()

SQLDrivers()*	SQLProcedures()

SQLExtendedFetch()*	SQLSetPos()*

SQLForeignKeys()	SQLScrollOptions()*

SQLNativeSql()	SQLTablePrivileges()

* Supported through the Cursor Library or Driver Manager


Supported Numeric Functions for the Informix 5 Driver

Click on the functions below for information.

abs	cot	round

acos	exp	sin

asin	log	sqrt

atan	log10	tan

atan2	mod	truncate

cos 	power


Supported Date Functions for the Informix 5 Driver

Click on the functions below for information.

curdate	minute

curtime	month

dayofmonth	now

dayofweek	second

hour	year


 ODBC Conformance Levels for the Ingres 6.4 Driver

Look below to discover the ODBC conformance levels supported by the Ingres 6.4 driver. See ODBC Conformance Levels for general information on the ODBC API and SQL conformance levels. Click on the triangle button in the upper left corner to view topics related to the Ingres 6.4 driver.

API Conformance Level

The Ingres driver supports the Core and Level 1 API functions, and several options for Level 1 functions. The driver also supports several Level 2 functions.

SQL Conformance Level

The Ingres 6.4 driver supports the Minimum SQL grammar (except the Long VARCHAR data type). Most Core SQL grammar is also supported (however, due to limitations of the CA-Ingres database, the decimal and numeric data types are not supported) with the exception of the following:

ALTER TABLE	REVOKE

The Ingres driver supports the following ODBC extensions to SQL:

    Date, time, and timestamp data

    Several numeric functions

    Several date functions

    Several string functions

    The user system function

Click HERE for more information on the numeric, date, string, and system functions.


Supported Level 2 Functions for the Ingres 6.4 Driver

SQLBrowseConnect()	SQLNumParams()

SQLDataSources()*	SQLPrimaryKeys()

SQLDrivers()*	SQLSetPos()*

SQLExtendedFetch()*	SQLSetScrollOptions()*

SQLNativeSql()

* Supported through the Cursor Library or Driver Manager


Options for Level 1 API Functions with the Ingres 6.4 Driver

The driver supports the following options for the SQLGetConnectOption() and SQLSetConnectOption() Level 1 functions:

    SQL_AUTOCOMMIT

    SQL_ODBC_CURSORS

    SQL_OPT_TRACE

    SQL_OPT_TRACEFILE

    SQL_TRANSLATE_DLL

    SQL_TRANSLATE_OPTION

    SQL_TXN_ISOLATION

The driver supports the following options for the SQLSetStmtOption() and SQLGetStmtOption() Level 1 functions:

    SQL_MAX_ROWS

    SQL_NOSCAN


Supported Numeric Functions for the Ingres 6.4 Driver

Click on the functions below for information.

abs	exp	sqrt

atan	log	tan

cos	mod

cot	sin


Supported Date Functions for the Ingres 6.4 Driver

Click on the functions below for information.

curdate	month	        week

dayofmonth	now	        year

hour	quarter

minute	second


Supported String Functions for the Ingres 6.4 Driver

Click on the functions below for information.

concat	right

lcase	rtrim

left	ucase

length


 ODBC Conformance Levels for the Oracle7 Driver

Look below to discover the ODBC conformance levels supported by the Oracle7 driver. See ODBC Conformance Levels for general information on the ODBC API and SQL conformance levels. Click on the triangle button in the upper left corner to view topics related to the Oracle7 driver.

API Conformance Level

The Oracle7 driver supports the Core and Level 1 API functions, as well as several options for Level 1 functions. The driver also supports several Level 2 functions.

SQL Conformance Level

The Oracle7 driver supports the Minimum SQL grammar and Core SQL grammar. The Oracle7 driver also supports the following ODBC extensions to SQL:

    Date, time, and timestamp data

    Outer joins

    Several numeric functions

    Several date functions

    Several string functions

    The user system function

Click HERE for more information on the numeric, date, string, and system functions.


Supported Level 2 Functions for the Oracle7 Driver

SQLBrowseConnect()	SQLNativeSql()

SQLDataSources()*	SQLNumParams()

SQLDrivers()*	SQLPrimaryKeys()

SQLExtendedFetch()*	SQLSetPos()*

SQLForeignKeys()	SQLSetScrollOptions()*

* Supported through the Cursor Library or Driver Manager


Options for Level 1 API Functions with the Oracle7 Driver

The driver supports the following options for the SQLGetConnectOption() and SQLSetConnectOption() Level 1 functions:

    SQL_ACCESS_MODE*

    SQL_AUTOCOMMIT

    SQL_ODBC_CURSORS

    SQL_OPT_TRACE

    SQL_OPT_TRACEFILE

    SQL_TRANSLATE_DLL

    SQL_TRANSLATE_OPTION

    SQL_TXN_ISOLATION

*SQLGetConnectOption only

The driver supports the following options for the SQLGetStmtOption() and SQLSetStmtOption() Level 1 functions:

    SQL_BIND_TYPE

    SQL_CONCURRENCY

    SQL_CURSOR_TYPE

    SQL_ROWSET_SIZE

    SQL_SIMULATE_CURSOR


Supported Numeric Functions for the Oracle7 Driver

Click on the functions below for information.

abs	log10	sin

ceiling	mod	sqrt

cos	PI( )	tan

exp	power	truncate

floor	round

log	sign


Supported Date Functions for the Oracle7 Driver

Click on the functions below for information.

curdate	dayofyear	now

curtime	hour	quarter

dayname	minute	second

dayofmonth	month	week

dayofweek	monthname	year


Supported String Functions for the Oracle7 Driver

Click on the functions below for information.

ascii	length	soundex

char	ltrim	substring

concat	replace	ucase

lcase	right

left	rtrim


 ODBC Conformance Levels for the Sybase DBLib Driver

Look below to discover the ODBC conformance levels supported by the Sybase DBLib driver. See ODBC Conformance Levels for general information on the ODBC API and SQL conformance levels. Click on the triangle button in the upper left corner to view topics related to the Sybase DBLib driver.

API Conformance Level

The Sybase DBLib driver supports the Core and Level 1 API functions, and several options for Level 1 functions. The driver also supports several Level 2 functions.

SQL Conformance Level

The Sybase DBLib driver supports the Minimum SQL grammar and Core SQL grammar. The Sybase DBLib driver also supports the following ODBC extensions to SQL:

    Date, time, and timestamp data

    Outer joins

    The convert function

    Several numeric functions

    Several date functions

    Several string functions

    The following system functions:

database	ifnull	user

NOTE:  With the convert function, the data type conversions must be supported by the underlying Sybase SQL Server engine.

Isolation Levels

The Sybase DBLib driver supports only the read committed isolation level. That is, a row that undergoes a cursor scan is unlocked before proceeding to the next row. Although this behavior improves concurrency, and eliminates the possibility of deadlocks, it is not possible to perform repeatable reads using SELECT statements. If an application must perform repeatable reads, you must issue the query as part of a stored procedure where the Sybase keyword HOLDLOCK is added after each table name in the querys from list. For example:

SELECT * from authors HOLDLOCK

Click HERE for more information on the numeric, date, string, and system functions.


Supported Level 2 Functions for the Sybase DBLib Driver

SQLBrowseConnect()	SQLNativeSql()

SQLDataSources()*	SQLNumParams()

SQLDrivers()*	SQLPrimaryKeys()

SQLExtendedFetch()*	SQLSetPos()*

SQLForeignKeys()	SQLSetScrollOptions()*

SQLMoreResults()

* Supported through the Cursor Library or Driver Manager


Options for Level 1 API Functions with the Sybase DBLib Driver

The driver supports the following options for the SQLGetConnectOption() and SQLSetConnectOption() Level 1 functions:

    SQL_AUTOCOMMIT

    SQL_LOGIN_TIMEOUT

    SQL_ODBC_CURSORS

    SQL_OPT_TRACE

    SQL_OPT_TRACEFILE

    SQL_PACKET_SIZE

    SQL_TRANSLATE_DLL

    SQL_TRANSLATE_OPTION

    SQL_TXN_ISOLATION

The driver supports the following options for the SQLSetStmtOption() and SQLGetStmtOption() Level 1 functions:

    SQL_BIND_TYPE

    SQL_CONCURRENCY

    SQL_CURSOR_TYPE

    SQL_MAX_LENGTH

    SQL_MAX_ROWS

    SQL_NOSCAN

    SQL_ROWSET_SIZE

    SQL_SIMULATE_CURSOR


Supported Numeric Functions for the Sybase DBLib Driver

Click on the functions below for information.

abs	cot	power

acos	degrees	radians

asin	exp	rand

atan	floor	sign

atan2	log	sin

ceiling	log10	sqrt

cos	PI( )	tan


Supported Date Functions for the Sybase DBLib Driver

Click on the functions below for information.

curdate	hour	quarter

dayname	minute	second

dayofmonth	month	week

dayofweek	monthname	year

dayofyear	now


Supported String Functions for the Sybase DBLib Driver

Click on the functions below for information.

ascii	lcase	soundex

char	length	space

concat	ltrim	substring

difference	rtrim	ucase


 ODBC Conformance Levels for the Sybase SQL Server 10 Driver

Look below to discover the ODBC conformance levels supported by the Sybase SQL Server 10 driver. See ODBC Conformance Levels for general information on the ODBC API and SQL conformance levels. Click on the triangle button in the upper left corner to view topics related to the Sybase SQL Server 10 driver.

API Conformance Level

The Sybase SQL Server 10 driver supports the Core and Level 1 API functions, and several options for Level 1 functions. The driver also supports several Level 2 functions.

SQL Conformance Level

The Sybase SQL Server 10 driver supports the Minimum SQL grammar and Core SQL grammar. The Sybase SQL Server 10 driver also supports the following ODBC extensions to SQL:

    Date, time, and timestamp data

    Outer joins

    The convert function

    Several numeric functions

    Several date functions

    Several string functions

    The following system functions:

database	ifnull	user

NOTE:  With the convert function, the data type conversions must be supported by the underlying Sybase SQL Server 10 engine.

Click HERE for more information on the numeric, date, string, and system functions.


Supported Level 2 Functions for the Sybase SQL Server 10 Driver

SQLBrowseConnect()	SQLNativeSql()

SQLDataSources()*	SQLNumParams()

SQLDrivers()*	SQLPrimaryKeys()

SQLExtendedFetch()*	SQLSetPos()*

SQLForeignKeys()	SQLSetScrollOptions()*

SQLMoreResults()

* Supported through the Cursor Library or Driver Manager


Options for Level 1 API Functions with the Sybase SQL Server 10 Driver

The driver supports the following options for the SQLGetConnectOption() and SQLSetConnectOption() Level 1 functions:

    SQL_AUTOCOMMIT

    SQL_LOGIN_TIMEOUT

    SQL_ODBC_CURSORS

    SQL_OPT_TRACE

    SQL_OPT_TRACEFILE

    SQL_PACKET_SIZE

    SQL_TRANSLATE_DLL

    SQL_TRANSLATE_OPTION

    SQL_TXN_ISOLATION

The driver supports the following options for the SQLSetStmtOption() and SQLGetStmtOption() Level 1 functions:

    SQL_BIND_TYPE

    SQL_CONCURRENCY

    SQL_CURSOR_TYPE

    SQL_MAX_LENGTH

    SQL_MAX_ROWS

    SQL_NOSCAN

    SQL_ROWSET_SIZE

    SQL_SIMULATE_CURSOR


Supported Numeric Functions for the Sybase SQL Server 10 Driver

Click on the functions below for information.

abs	cot	power

acos	degrees	radians

asin	exp	rand

atan	floor	sign

atan2	log	sin

ceiling	log10	sqrt

cos	PI( )	tan


Supported Date Functions for the Sybase SQL Server 10 Driver

Click on the functions below for information.

curdate	hour	quarter

dayname	minute	second

dayofmonth	month	week

dayofweek	monthname	year

dayofyear	now


Supported String Functions for the Sybase SQL Server 10 Driver

Click on the functions below for information.

ascii	lcase	soundex

char	length	space

concat	ltrim	substring

difference	rtrim	ucase


 Mapping Data Types for the Informix 5 Driver

Look below to learn how ODBC data types map to the Informix 5 driver. Click on the triangle button in the upper left corner to view topics related to the Informix 5 driver.

The INFORMIX-OnLine and INFORMIX-SE database servers support a set of data types. The Informix 5 driver maps these data types to their appropriate ODBC SQL data types. The following table lists the Informix data type and its corresponding ODBC SQL data type.

Informix Type	ODBC SQL Data Type

byte	SQL_LONGVARBINARY

char	SQL_CHAR

date	SQL_DATE

datetime	SQL_TIMESTAMP

decimal, fixed	SQL_DECIMAL

decimal, floating point	SQL_DOUBLE

float	SQL_DOUBLE

integer	SQL_INTEGER

interval	SQL_CHAR

money	SQL_DECIMAL

serial	SQL_INTEGER

smallfloat	SQL_REAL

smallint	SQL_SMALLLINT

text	SQL_LONGVARCHAR

varchar	SQL_VARCHAR


 Mapping Data Types for the Ingres 6.4 Driver

Look below to learn how ODBC data types map to the Ingres 6.4 driver. Click on the triangle button in the upper left corner to view topics related to the Ingres 6.4 driver.

The CA-Ingres 6.4 database supports a set of data types. The Ingres 6.4 driver maps these data types to their appropriate ODBC SQL data types. The following table lists the CA-Ingres 6.4 data type and its corresponding ODBC SQL data type.

CA-Ingres Data Type	ODBC SQL Data Type

char	SQL_CHAR

date	SQL_TIMESTAMP

float	SQL_FLOAT

float4	SQL_REAL

integer	SQL_INTEGER

integer1	SQL_TINYINT

money	SQL_DECIMAL

smallint	SQL_SMALLLINT

varchar	SQL_VARCHAR


 Mapping Data Types for the Oracle7 Driver

Look below to learn how ODBC data types map to the Oracle7 driver. Click on the triangle button in the upper left corner to view topics related to the Oracle7 driver.

The Oracle7 Server supports a set of data types. The Oracle7 driver maps these data types to their appropriate ODBC SQL data types. The following table lists the Oracle7 Server data type and its corresponding ODBC SQL data type.

NOTE:  The following data type mapping is best for using Microsoft applications. For backward compatibility with the 1.02 version of the DriverSet, you might consider setting the Number/Float Mapping option in the Oracle7 Setup dialog box.

Oracle7 Data Type	ODBC SQL Data Type

CHAR	SQL_CHAR

DATE	SQL_TIMESTAMP

FLOAT	SQL_FLOAT *

LONG	SQL_LONGVARCHAR

LONG RAW	SQL_LONGVARBINARY

NUMBER	SQL_FLOAT *

NUMBER(P)	SQL_DECIMAL

NUMBER(P,S)	SQL_DECIMAL

RAW	SQL_BINARY

VARCHAR2	SQL_VARCHAR

*  When you check the Number/Float Mapping option, the number type maps to SQL_DECIMAL and the float type maps to SQL_DOUBLE.

NOTE:  ODBC SQL data types do not support the MLSLABEL Oracle7 data type.

NOTE:  There is no conformance testing (i.e. range checking) done for:

  SQL_C_xTINYINTs (these are interpreted as integers)

  SQL_C_xLONG (these are interpreted as integers)

  SQL_C_xSHORT (these are interpreted as integers)

  SQL_C_BIT (these are interpreted as chars)

  SQL_C_DOUBLE* (these are interpreted as floats)

* If you insert a value greater than 3.4e38 or less than 1.1e-38, you will get an Oracle range error.

NOTE:   Although all values will be inserted into the data source (except for SQL_C_DOUBLEs outside of a float range), no range checking will be performed. For example, using a SQL_C_BIT to store the value 10 will not be flagged as an error.


 Mapping Data Types for the Sybase DBLib Driver

Look below to learn how ODBC data types map to the Sybase DBLib driver. Click on the triangle button in the upper left corner to view topics related to the Sybase DBLib driver.

The Sybase SQL Server supports a set of data types. The Sybase DBLib driver maps these data types to their appropriate ODBC SQL data types. The following table lists the Sybase data type and its corresponding ODBC SQL data type.

Sybase Data Type	ODBC SQL Data Type

binary	SQL_BINARY

bit	SQL_BIT

char	SQL_CHAR

datetime	SQL_TIMESTAMP

decimal	SQL_DECIMAL *

float	SQL_FLOAT

image	SQL_LONGVARBINARY

int	SQL_INTEGER

money	SQL_DECIMAL

nchar	SQL_CHAR *

numeric	SQL_NUMERIC *

real	SQL_REAL

smalldatetime	SQL_TIMESTAMP

smallint	SQL_SMALLLINT

smallmoney	SQL_DECIMAL

sysname	SQL_VARCHAR

text	SQL_LONGVARCHAR

timestamp	SQL_VARBINARY

tinyint	SQL_C_UTINYINT *

varbinary	SQL_VARBINARY

varchar	SQL_VARCHAR

*NOTE:  The Sybase tinyint type is unsigned, and the Sybase DBLib driver maps it to SQL_C_UTINYINT when the application specifies the output type as SQL_C_DEFAULT. Be sure that the receiving variables are also unsigned when using SQL_C_DEFAULT.

* Sybase SQL Server 10 only


 Mapping Data Types for the Sybase SQL Server 10 Driver

Look below to learn how ODBC data types map to the Sybase SQL Server 10 driver. Click on the triangle button in the upper left corner to view topics related to the Sybase SQL Server 10 driver.

The Sybase SQL Server 10 database supports a set of data types. The Sybase SQL Server 10 driver maps these data types to their appropriate ODBC SQL data types. The following table lists the Sybase SQL Server 10 data type and its corresponding ODBC SQL data type.

Sybase Data Type	ODBC SQL Data Type

binary	SQL_BINARY

bit	SQL_BIT

char	SQL_CHAR

datetime	SQL_TIMESTAMP

decimal	SQL_DECIMAL

float	SQL_FLOAT

image	SQL_LONGVARBINARY

int	SQL_INTEGER

money	SQL_DECIMAL

nchar	SQL_CHAR

numeric	SQL_NUMERIC

nvarchar	SQL_VARCHAR

real	SQL_REAL

smalldatetime	SQL_TIMESTAMP

smallint	SQL_SMALLLINT

smallmoney	SQL_DECIMAL

sysname	SQL_VARCHAR

text	SQL_LONGVARCHAR

timestamp	SQL_VARBINARY

tinyint	SQL_C_UTINYINT *

varbinary	SQL_VARBINARY

varchar	SQL_VARCHAR

*NOTE:  The Sybase tinyint type is unsigned, and the Sybase SQL Server 10 driver maps it to SQL_C_UTINYINT when the application specifies the output type as SQL_C_DEFAULT. Be sure that the receiving variables are also unsigned when using SQL_C_DEFAULT.


 Advanced User Notes for the Informix 5 Driver

Look below to learn about using stored procedures with the Informix 5 driver. Click on the triangle button in the upper left corner to view topics related to the Informix 5 driver.

The ODBC specification defines stored procedures as an executable object or a named entity that can be invoked using input and output parameters, and which can return result sets similar to the results returned by SQL SELECT expressions.

The stored procedures for the Visigenic Informix drivers:

  Have 0 or more input parameters.

  Return 0 output parameters.

  Return 0 or 1 result set composed of one or more columns.

Click below to learn how stored procedures affect the following ODBC API functions.

SQLBindParameter()

SQLProcedures()

SQLProcedureColumns()

SQLExecute() and SQLExecDirect()


SQLBindParameter()

When using SQLBindParameter(), the fparam type argument must either be SQL_PARAM_INPUT or SQL_PARAM_INPUT_OUTPUT. SQL_PARAM_OUTPUT is not a legal value, and will return this error message:

SQLSTATE S1C00, "Driver not capable".

Even though SQL_PARAM_INPUT_OUTPUT is recognized, the parameter is used only to obtain input values. By definition, no output values are placed into the parameter's buffer. Informix stored procedures return no output parameters---they only return result set columns.

Informix does not support default values for input parameters to stored procedures. Therefore, all input parameters must have values.


SQLProcedures()

When using SQLProcedures(), the columns in the result set created by SQLProcedures() are defined in the following ways:

NUM_OUTPUT_PARAMS	is always 0.

NUM_RESULT_SETS 	is always 0.

NUM_INPUT_PARAMS 	contains the correct value as defined in the Informix system catalog table, sysprocedures.


SQLProcedureColumns()

When using SQLProcedureColumns(), the szColumnName and cbColumnName arguments are checked for basic validity but are otherwise ignored. Informix provides no mechanism to obtain the names of the result set columns returned from a stored procedure.

Within the result set created by SQLProcedureColumns(), the COLUMN_NAME column contains a manufactured column name named colXXX where XXX is the ordinal position of the column name, beginning with 1---for example, col1.


SQLExecute() and SQLExecDirect()

There are two forms of ODBC escape syntax associated with ODBC executable objects. One form is associated with FUNCTIONS that return output parameters, the other is for PROCEDURES. Since the driver maps all Informix stored procedures to ODBC PROCEDURES, only the procedures syntax is recognized.


 Advanced User Notes for the Oracle7 Driver

Look below to learn how to connect to an Oracle7 database using SQLConnect() and SQLDriverConnect(). Click on the triangle button in the upper left corner to view topics related to the Oracle7 driver.

Connecting to Oracle7 using SQLConnect()

You may connect to both local and remote databases using SQLConnect(). To connect to a database using the Oracle7 driver and SQLConnect(), the data source specification entry for a data source that uses the Oracle7 driver must contain the following information in the ODBC.INI file:

   data-source-name

   driver-path

   SQL*Net connect string (remote databases only)

The UID field is optional. For local databases, the Server field that specifies the SQL*Net connect string must be blank.

For example, the ODBC.INI entry for a VSOracle data source that connects to a remote database would look like the following:

[VSOracle]
Driver=C:\WINDOWS\SYSTEM\vsorac.dll
Description=Oracle test
Server=t:host:oracle2	(leave this field blank for local databases)
UID=	(this field is optional)

For local databases, you must also set the ORACLE_HOME and ORACLE_SID system variables in the ORACLE.INI file.

For example, the ORACLE.INI settings might look like the following:

[Oracle]
ORACLE_HOME=C:\ORAWIN
ORACLE_SID=oracle2

For remote databases, if the ORACLE_HOME and ORACLE_SID system variables are set, they will be overwritten by the values supplied in the SQLConnect() call.

Connecting to Oracle7 using SQLDriverConnect()

To connect to a database using the Oracle7 driver and SQLDriverConnect(), the data source specification entry for a data source that uses the Oracle7 driver must contain the following information in the ODBC.INI file:

   data-source-name

   driver-path

The Server field that specifies the SQL*Net connect string and the UID field is optional. For example, the ODBC.INI entry for a VSOracle data source that connects to a database would look like the following:

[VSOracle]

Driver=C:\WINDOWS\SYSTEM\VSORAC.DLL

Description=Oracle test

Server=	(this field is optional)

UID=	(this field is optional)

The values for Server and UID can be overwritten by the values specified in the szConnStrIn (connect string). For remote databases, the database must be referenced by either the Server entry in the ODBC.INI file or by the szConnStrIn (connect string). For local databases, you must also set the ORACLE_HOME and ORACLE_SID system variables.


 Advanced User Notes for the Sybase DBLib Driver

Look below to learn about advanced notes related to the Sybase DBLib driver. Click on the triangle button in the upper left corner to view topics related to the Sybase DBLib driver.

Avoiding Deadlock

Functional Differences Between the Sybase DBLib Driver and Sybase SQL Server 10 Driver

Configuring the Connection Count for Cursor Caching

Setting the Force Prepare Option

Checking Error States

Working with Multiple Result Sets

Tuning the Performance of the Sybase DBLib Driver


Avoiding Deadlock with the Sybase DBLib Driver

It is possible to self-deadlock when a transaction is in progress (that is, when data manipulation operations are in progress, and the connection is not in auto-commit mode). For example, if a statement handle is used to insert a row, and that row is queried again by the same application, the second query is blocked because the row is locked by the first statement handle.

To avoid deadlocks, do not revisit an updated row. If you must revisit a row, you can encapsulate and execute the query in a stored procedure. The stored procedure is automatically executed as part of the transaction, and a deadlock will not occur.


Functional Differences Between the Sybase Drivers

If you are a Sybase SQL Server 10 user, you may choose to use the Sybase DBLib driver because of its increased performance. However, you will lose some functionality that Sybase SQL Server 10 provides. The following sections provide detailed information on the differences between the Sybase DBLib driver and the Sybase SQL Server 10 driver.

Differences in ODBC API Function Support

Differences in Numeric Precision

Differences in Run Time Behavior


Differences in ODBC API Function Support

When using SQLGetInfo() with the Sybase DBLib driver, you can expect the following functional differences from the values returned when using the Sybase SQL Server 10 driver:

   SQL_ALTER_TABLE returns SQL_AT_ADD_COLUMN (only when accessing Sybase 4.x).

   SQL_DBMS_NAME and SQL_DBMS_VER return a function of the specific RDBMS version to which you are connected.

   SQL_IDENTIFIER_QUOTE_CHAR returns   (only when accessing Sybase4.x).

   SQL_LIKE_ESCAPE_CLAUSE returns N (only when accessing Sybase4.x).

   SQL_TXN_CAPABLE returns SQL_TC_DLL_COMMIT.

   SQL_TXN_ISOLATION_OPTION returns SQL_TXN_READ_COMMITTED.

Further, calls to SQLDescribeCol() have the following behavior:

   When accessing Sybase SQL Server 10, SQLDescribeCol() does not return the true scale for numeric and decimal data types. Instead, the scale is set to 0.

   When accessing all versions of the Sybase SQL Server, SQLDescribeCol() does not return true nullability information. Instead, all result set items are indicated to have a nullability attribute of SQL_NULLABLE_UNKNOWN.


Differences in Numeric Precision

When using the Sybase DBLib driver, numeric precision may operate differently between Sybase SQL Server 4.x and Sybase SQL Server 10:

   With Sybase SQL Server 10, the precision and scale attributes of a data type are best retrieved using the SQLGetTypeInfo() call rather than relying on the results of SQLDescribeCol().

   With Sybase SQL Server 4.x, there are no true numeric or decimal data types. However, there is a money data type that serves as an approximation of the ODBC decimal type. If you use this data type, there is decreased precision with Sybase SQL Server 4.x, as well as a potential for numeric overflow (particularly when using the smallmoney data type).


Differences in Run Time Behavior

The text of client error messages may be worded slightly differently between the Sybase DBLib and Sybase SQL Server 10 drivers, while retaining the same meaning.

For example, error text with the Sybase SQL Server 10 driver may read as follows:

common library error: The conversion/operation was stopped due to a syntax error in the source field.

With the Sybase DBLib driver, that same message would appear as follows:

Attempt to convert data stopped by syntax error in source field

These slight differences are due to the differences between CT Library error messages and DB Library error messages.


Configuring the Connection Count for Cursor Caching

The setting of the Cursor Caching option may require a reconfiguration of the connection count. The system administrator may need to alter the connection count according to the following guidelines depending on the setting of this option:

0	Set the count to the average number of ODBC connections multiplied by the average number of statement handles simultaneously active in a fetch loop.

1	Set the count to the average number of ODBC connections multiplied by the peak number of statement handles simultaneously active in a fetch loop.


Setting the Force Prepare Option

Because DB Library does not support the ODBC notion of preparing an SQL statement with parameter markers, the Sybase DBLib driver must simulate this functionality. The Sybase DBLib driver simulates this prepare functionality by composing and sending the complete SQL statement (with parameters replaced by actual values) to the server at SQLExecute(). As a consequence, most syntax and semantic errors are ordinarily caught at SQLExecute(), rather than SQLPrepare() as defined by the ODBC specification.

To comply with the ODBC specification, a data sources Force Prepare option can be set (option checked or set to 1) so that SQL syntax and semantic errors will be reported at SQLPrepare(). With this setting, the Sybase DBLib driver forces a special dummy execution of the SQL statement to the server at SQLPrepare(), supplying default values for parameters. This setting degrades performance, but provides adherence to ODBC-defined behavior.

For optimal performance, the Force Prepare option can be left unset (unchecked or set to 0). With this setting, the SQL statement is not sent to the server until SQLExecute(). Most syntax and semantic errors are therefore not caught until execution time. This setting technically causes a violation of the ODBC specification because syntax and semantic error states 21S01, 21S02, 37000, 42000, S0001, S0002, S0011, S0012, S0021 and S0022 are not reported during SQLPrepare() as defined by the ODBC specification.


Checking Error States

With the Sybase DBLib driver, unless the Force Prepare option is set, an application will not receive an error state at SQLPrepare() or SQLBindParameter(). Instead, the error will be reported at SQLDescribeCol(), SQLNumResultCols(), or SQLExecute().


Working with Multiple Result Sets

The Sybase drivers support multiple result sets. The following sections cover the ODBC syntax and semantics for multiple result sets that are supported.

Syntax for Separating Multiple SQL Statements

Multiple SQL statements can be separated by the ODBC-specified ; statement separator. As per the Transact SQL syntax specification, stringing multiple statements without a separator is also permitted.

Issuing Multiple SQL Statements

Multiple SQL statements can be issued either as a command batch, or as a result of the execution of a stored procedure that contains a batch. The SQLMoreResults() call can be used to step through individual result sets.

When executing a command batch, a SQLRowCount() call prior to a SQLMoreResults() call returns a count of the rows affected by the preceding SQL statement. This count is -1 for DDL/DCL statements, the number of modified rows for DML statements, and the number of rows fetched for queries (if the end-of-fetch is reached).

If a SQLMoreResults() call is issued before an end-of-fetch condition is reached for a query, the query is cancelled and the next SQL statement in the batch is executed.

Executing Multiple Statement Handles

When a statement handle is in the middle of executing a command batch, the remainder of the statement will be cancelled if you execute a SQL command in another statement handle (provided the current statement is not performing a row fetch or SQLPutData() sequence). This situation will produce an invalid cursor state or a function sequence error condition. This behavior is driver-defined.

Executing Multiple Statements with Stored Procedures

When executing a stored procedure that contains multiple SQL statements, statements that do not return result sets do not have accessible row counts. That is, executing SQLMoreResults() positions the statement handle to the next query rather than the next statement. This behavior is attributable to the Sybase database.

Passing Variables as Ouput Parameters in Stored Procedures

You can submit a command batch that contains a Transact SQL variable declaration that is specified as an output parameter of a stored procedure. This feature is available through the Sybase database.


Tuning the Performance of the Sybase DBLib Driver

Recommended Client Library Configuration

Although Visigenic supplies the Winsock Net Library, Sybase recommends that you use a Net Library that corresponds to a native TCP protocol stack, rather than a WINSOCK Net Library driver, for the Windows platform. Performance has been reported to improve with this configuration.


 Advanced User Notes for the Sybase SQL Server 10 Driver

Look below to learn about advanced notes related to the Sybase SQL Server 10 driver. Click on the triangle button in the upper left corner to view topics related to the Sybase SQL Server 10 driver.

Working with Multiple Result Sets

Tuning the Performance of the Sybase SQL Server 10 Driver


Tuning the Performance of the Sybase SQL Server 10 Driver

Setting the Packet Size to the Server Configuration

An application can increase performance by setting the SQL_PACKET_SIZE option to within 4KB of the server configuration for packet size. Note that if an applications packet size is not specified to a servers configuration, the application will not be able to connect to the server.

Recommended Client Library Configuration

Although Visigenic supplies the Winsock Net Library, Sybase recommends that you use a Net Library that corresponds to a native TCP protocol stack, rather than a WINSOCK Net Library driver, for the Windows platform. Performance has been reported to improve with this configuration.


 String Functions

Click on a function below to find out information about it. The functions begin after you see Click on a function for more information. Click on the triangle button in the upper left corner for other ODBC scalar functions.

The following are string manipulation functions. Character string literals used as arguments to scalar functions must be bounded by single quotes.

Arguments denoted as string_exp can be the name of a column, a string literal, or the result of another scalar function, where the underlying data type can be represented as SQL_CHAR, SQL_VARCHAR, or SQL_LONGVARCHAR.

Arguments denoted as start, length, code, or count can be a numeric literal or the result of another scalar function, where the underlying data type can be represented as SQL_TINYINT, SQL_SMALLINT, or SQL_INTEGER.

The string functions listed here are 1-based, that is, the first character in the string is character 1.

Click on a function for more information:

ASCII(string_exp)

CHAR(code)

CONCAT(string_exp1, string_exp2)

DIFFERENCE(string_exp1, string_exp2)

INSERT(string_exp1, start, length, string_exp2)

LCASE(string_exp)

LEFT(string_exp, count)

LENGTH(string_exp)

LOCATE(string_exp1, string_exp2 [start])

LTRIM(string_exp)

REPEAT(string_exp, count)

REPLACE(string_exp1, string_exp2, string_exp3)

RIGHT(string_exp, count)

RTRIM(string_exp)

SOUNDEX(string_exp)

SPACE(count)

SUBSTRING(string_exp, start, length)

UCASE(string_exp)


ASCII(string_exp)

Returns the ASCII code value of the leftmost character of string_exp as an integer.


CHAR(code)

Returns the character that has the ASCII code value specified by code. The value of code should be between 0 and 255; otherwise, the return value is data source-dependent.


CONCAT(string_exp1, string_exp2)

Returns a character string that is the result of concatenating string_exp2 to string_exp1. The resulting string is DBMS dependent. For example, if the column represented by string_exp1 contained a NULL value, DB2 would return NULL, but SQL Server would return the non-NULL string.


DIFFERENCE(string_exp1, string_exp2)

Returns an integer value that indicates the difference between the values returned by the SOUNDEX function for string_exp1 and string_exp2.


INSERT(string_exp1, start, length, string_exp2)

Returns a character string where length characters have been deleted from string_exp1 beginning at start and where string_exp2 has been inserted into string_exp1, beginning at start.


LCASE(string_exp)

Converts all upper case characters in string_exp to lower case.


LEFT(string_exp, count)

Returns the leftmost count of characters of string_exp.


LENGTH(string_exp)

Returns the number of characters in string_exp, excluding trailing blanks and the string termination character.


LOCATE(string_exp1, string_exp2 [start])

Returns the starting position of the first occurrence of string_exp1 within string_exp2. The search for the first occurrence of string_exp1 begins with the first character position in string_exp2 unless the optional argument, start, is specified. If start is specified, the search begins with the character position indicated by the value of start. The first character position in string_exp2 is indicated by the value 1. If string_exp1 is not found within string_exp2, the value 0 is returned.


LTRIM(string_exp)

Returns the characters of string_exp, with leading blanks removed.


REPEAT(string_exp, count)

Returns a character string composed of string_exp repeated count times.


REPLACE(string_exp1, string_exp2, string_exp3)

Replaces all occurrences of string_exp2 in string_exp1 with string_exp3.


RIGHT(string_exp, count)

Returns the rightmost count of characters of string_exp.


RTRIM(string_exp)

Returns the characters of string_exp with trailing blanks removed.


SOUNDEX(string_exp)

Returns a data source-dependent character string representing the sound of the words in string_exp. For example, SQL Server returns a four digit SOUNDEX code; Oracle returns a phonetic representation of each word.


SPACE(count)

Returns a character string consisting of count spaces.


SUBSTRING(string_exp, start, length)

Returns a character string that is derived from string_exp beginning at the character position specified by start for length characters.


UCASE(string_exp)

Converts all lower case characters in string_exp to upper case.


 Numeric Functions

Click on a function below to find out information about it. The functions begin after you see Click on a function for more information. Click on the triangle button in the upper left corner for other ODBC scalar functions.

The following are numeric functions that are included in the ODBC scalar function set.

Arguments denoted as numeric_exp can be the name of a column, the result of another scalar function, or a numeric literal, where the underlying data type could be represented as SQL_NUMERIC, SQL_DECIMAL, SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_FLOAT, SQL_REAL, or SQL_DOUBLE.

Arguments denoted as float_exp can be the name of a column, the result of another scalar function, or a numeric literal, where the underlying data type can be represented as SQL_FLOAT.

Arguments denoted as integer_exp can be the name of a column, the result of another scalar function, or a numeric literal, where the underlying data type can be represented as SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, or SQL_BIGINT.

Click on a function for more information:

ABS(numeric_exp)

ACOS(float_exp)

ASIN(float_exp)

ATAN(float_exp)

ATAN2(float_exp1, float_exp2)

CEILING(numeric_exp)

COS(float_exp)

COT(float_exp)

DEGREES(numeric_exp)

EXP(float_exp)

FLOOR(numeric_exp)

LOG(float_exp)

LOG10(float_exp)

MOD(integer_exp1, integer_exp2)

PI( )

POWER(numeric_exp, integer_exp)

RADIANS(numeric_exp)

RAND([integer_exp])

ROUND(numeric_exp, integer_exp)

SIGN(numeric_exp)

SIN(float_exp)

SQRT(float_exp)

TAN(float_exp)

TRUNCATE(numeric_exp, integer_exp)


ABS(numeric_exp)

Returns the absolute value of numeric_exp.


ACOS(float_exp)

Returns the arccosine of float_exp as an angle, expressed in radians.


ASIN(float_exp)

Returns the arcsine of float_exp as an angle, expressed in radians.


ATAN(float_exp)

Returns the arctangent of float_exp as an angle, expressed in radians.


ATAN2(float_exp1, float_exp2)

Returns the arctangent of the x and y coordinates, specified by float_exp1 and float_exp2, respectively, as an angle, expressed in radians.


CEILING(numeric_exp)

Returns the smallest integer greater than or equal to numeric_exp.


COS(float_exp)

Returns the cosine of float_exp, where float_exp is an angle expressed in radians.


COT(float_exp)

Returns the cotangent of float_exp, where float_exp is an angle expressed in radians.


DEGREES(numeric_exp)

Returns the number of degrees converted from numeric_exp radians.


EXP(float_exp)

Returns the exponential value of float_exp.


FLOOR(numeric_exp)

Returns largest integer less than or equal to numeric_exp.


LOG(float_exp)

Returns the natural logarithm of float_exp.


LOG10(float_exp)

Returns the base 10 logarithm of float_exp.


MOD(integer_exp1, integer_exp2)

Returns the remainder (modulus) of integer_exp1 divided by integer_exp2.


PI( )

Returns the constant value of pi as a floating point value.


POWER(numeric_exp, integer_exp)

Returns the value of numeric_exp to the power of integer_exp.


RADIANS(numeric_exp)

Returns the number of radians converted from numeric_exp degrees.


RAND([integer_exp])

Returns a random floating point value using integer_exp as the optional seed value.


ROUND(numeric_exp, integer_exp)

Returns numeric_exp rounded to integer_exp places right of the decimal point. If integer_exp is negative, numeric_exp is rounded to |integer_exp| places to the left of the decimal point.


SIGN(numeric_exp)

Returns an indicator or the sign of numeric_exp. If numeric_exp is less than zero, 1 is returned. If numeric_exp equals zero, 0 is returned. If numeric_exp is greater than zero, 1 is returned.


SIN(float_exp)

Returns the sine of float_exp, where float_exp is an angle expressed in radians.


SQRT(float_exp)

Returns the square root of float_exp.


TAN(float_exp)

Returns the tangent of float_exp, where float_exp is an angle expressed in radians.


TRUNCATE(numeric_exp, integer_exp)

Returns numeric_exp truncated to integer_exp places right of the decimal point. If integer_exp is negative, numeric_exp is truncated to |integer_exp| places to the left of the decimal point.


 Time and Date Functions

Click on a function below to find out information about it. The functions begin after you see Click on a function for more information. Click on the triangle button in the upper left corner for other ODBC scalar functions.

The following are time and date functions that are included in the ODBC scalar function set. Date, time, and timestamp literals must be bounded by single quotes.

Arguments denoted as timestamp_exp can be the name of a column, the result of another scalar function, or a time, date, or timestamp literal, where the underlying data type could be represented as SQL_CHAR, SQL_VARCHAR, SQL_TIME, SQL_DATE, or SQL_TIMESTAMP.

Arguments denoted as date_exp can be the name of a column, the result of another scalar function, or a date or timestamp literal, where the underlying data type could be represented as SQL_CHAR, SQL_VARCHAR, SQL_DATE, or SQL_TIMESTAMP.

Arguments denoted as time_exp can be the name of a column, the result of another scalar function, or a time or timestamp literal, where the underlying data type could be represented as SQL_CHAR, SQL_VARCHAR, SQL_TIME, or SQL_TIMESTAMP.

Values returned are represented as ODBC data types.

Click on a function for more information:

CURDATE( )

CURTIME( )

DAYNAME(date_exp)

DAYOFMONTH(date_exp)

DAYOFWEEK(date_exp)

DAYOFYEAR(date_exp)

HOUR(time_exp)

MINUTE(time_exp)

MONTH(date_exp)

MONTHNAME(date_exp)

NOW( )

QUARTER(date_exp)

SECOND(time_exp)

TIMESTAMPADD(interval, integer_exp, timestamp_exp)

TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2)

WEEK(date_exp)

YEAR(date_exp)


CURDATE( )

Returns the current date as a date value.


CURTIME( )

Returns the current local time as a time value.


DAYNAME(date_exp)

Returns a character string containing the data source-specific name of the day (for example, Sunday, through Saturday or Sun. through Sat. for a data source that uses English, or Sonntag through Samstag for a data source that uses German) for the day portion of date_exp.


DAYOFMONTH(date_exp)

Returns the day of the month in date_exp as an integer value in the range of 1 to 31.


DAYOFWEEK(date_exp)

Returns the day to the week in date_exp as an integer value in the range of 1 to 7, where 1 represents Sunday.


DAYOFYEAR(date_exp)

Returns the day of the year in date_exp as an integer value in the range of 1 to 366.


HOUR(time_exp)

Returns the hour in time_exp as an integer value in the range of 0 to 23.


MINUTE(time_exp)

Returns the minute in time_exp as an integer value in the range of 0 to 59.


MONTH(date_exp)

Returns the month in date_exp as an integer value in the range of 1 to 12.


MONTHNAME(date_exp)

Returns a character string containing the data-source-specific name of the month (for example, January through December or Jan. through Dec. for a data source that uses English, or Januar through Dezember for a data source that uses German) for the month portion of date_exp.


NOW( )

Returns current date and time as a timestamp value.


QUARTER(date_exp)

Returns the quarter in date_exp as an integer value in the range of 1 to 4, where 1 represents January 1 through March 31.


SECOND(time_exp)

Returns the second in time_exp as an integer value in the range of 0 to 59.


TIMESTAMPADD(interval, integer_exp, timestamp_exp)

Returns the timestamp calculated by adding integer_exp intervals of type interval to timestamp_exp. Valid values of interval are the following keywords where fractional seconds are expressed in billionths of a second:

   SQL_TSI_FRAC_SECOND

   SQL_TSI_SECOND

   SQL_TSI_MINUTE

   SQL_TSI_HOUR

   SQL_TSI_DAY

   SQL_TSI_WEEK

   SQL_TSI_MONTH

   SQL_TSI_QUARTER

   SQL_TSI_YEAR

For example, the following SQL statement returns the name of each employee and their one-year anniversary dates:

SELECT NAME,

{fn TIMESTAMPADD(SQL_TSI_YEAR,1, HIRE_DATE)} FROM EMPLOYEES

If timestamp_exp is a time value and interval specifies days, weeks, months, quarters, or years, the date portion of timestamp_exp is set to the current date before calculating the resulting timestamp.

If timestamp_exp is a date value and interval specifies fractional seconds, seconds, minutes, or hours, the time portion of timestamp_exp is set to 0 before calculating the resulting timestamp.

An application determines which intervals a data source supports by calling SQLGetInfo() with the SQL_TIMEDATE_ADD_INTERVALS option.


TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2)

Returns the integer number of intervals of type interval by which timestamp_exp2 is greater than timestamp_exp1. Valid values of interval are the following keywords where fractional seconds are expressed in billionths of a second:

   SQL_TSI_FRAC_SECOND

   SQL_TSI_SECOND

   SQL_TSI_MINUTE

   SQL_TSI_HOUR

   SQL_TSI_DAY

   SQL_TSI_WEEK

   SQL_TSI_MONTH

   SQL_TSI_QUARTER

   SQL_TSI_YEAR

For example, the following SQL statement returns the name of each employee and the number of years they have been employed.

SELECT NAME,

{fn TIMESTAMPDIFF(SQL_TSI_YEAR,{fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES

If either timestamp expression is a time value and interval specifies days, weeks, months, quarters, or years, the date portion of that timestamp is set to the current date before calculating the difference between the timestamps.

If either timestamp expression is a date value and interval specifies fractional seconds, seconds, minutes, or hours, the time portion of that timestamp is set to 0 before calculating the difference between the timestamps.

An application determines which intervals a data source supports by calling SQLGetInfo() with the SQL_TIMEDATE_DIFF_INTERVALS option.


WEEK(date_exp)

Returns the week of the year in date_exp as an integer value in the range of 1 to 53.


YEAR(date_exp)

Returns the year in date_exp as an integer value. The range is data source dependent.


 System Functions

Click on a function below to find out information about it. The functions begin after you see Click on a function for more information. Click on the triangle button in the upper left corner for other ODBC scalar functions.

The following are system functions that are included in the ODBC scalar function set.

Arguments denoted as exp can be the name of a column, the result of another scalar function, or a literal, where the underlying data type could be represented as SQL_NUMERIC, SQL_DECIMAL, SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE, SQL_DATE, SQL_TIME, or SQL_TIMESTAMP.

Arguments denoted as value can be a literal constant, where the underlying data type can be represented as SQL_NUMERIC, SQL_DECIMAL, SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE, SQL_DATE, SQL_TIME, or SQL_TIMESTAMP.

Values returned are represented as ODBC data types.

Click on a function for more information:

DATABASE( )

IFNULL(exp,value)

USER( )


DATABASE( )

Returns the name of the database corresponding to the connection handle (hdbc). (The name of the database is also available by calling SQLGetConnectOption() with the SQL_CURRENT_QUALIFIER connection option.)


IFNULL(exp, value)

If exp is null, value is returned. If exp is not null, exp is returned. The possible data type(s) of value must be compatible with the data type of exp.


USER( )

Returns the user's authorization name. (The user's authorization name is also available via SQLGetInfo() by specifying the information type: SQL_USER_NAME.)


 Explicit Data Type Conversion

Look below for information about data type conversion across the Visigenic DriverSet. Click on the triangle button in the upper left corner for other ODBC scalar functions.

Explicit data type conversion is specified in terms of ODBC SQL data type definitions.

The ODBC syntax for the explicit data type conversion function does not restrict conversions. The validity of specific conversions of one data type to another data type will be determined by each driver-specific implementation. The driver will, as it translates the ODBC syntax into the native syntax, reject those conversions that, although legal in the ODBC syntax, are not supported by the data source. The ODBC function SQLGetInfo() provides a way to inquire about conversions supported by the data source.

The format of the CONVERT() function is:

CONVERT(value_exp, data_type)

The function returns the value specified by value_exp converted to the specified data_type, where data_type is one of several keywords.

The ODBC syntax for the explicit data type conversion function does not support specification of conversion format. If specification of explicit formats is supported by the underlying data source, a driver must specify a default value or implement format specification.

The argument value_exp can be a column name, the result of another scalar function, or a numeric or string literal.

For example, the following example converts the output of the CURDATE() scalar function to a character string.

{ fn CONVERT( { fn CURDATE() }, SQL_CHAR) }

MORE EXAMPLES


Data Type Keywords

The keywords can be any of the following:

SQL_BIGINT	SQL_BINARY

SQL_BIT	SQL_CHAR

SQL_DATE	SQL_DECIMAL

SQL_DOUBLE	SQL_FLOAT

SQL_INTEGER	SQL_LONGVARBINARY

SQL_LONGVARCHAR	SQL_REAL

SQL_SMALLINT	SQL_TIME

SQL_TIMESTAMP	SQL_TINYINT

SQL_VARBINARY	SQL_VARCHAR


Examples Using the Convert()Function

Look below for more examples on using the Convert() function.

The following two examples illustrate the use of the CONVERT() function. These examples assume the existence of a table called employees, with an empno column of type SQL_SMALLINT and an empname column of type SQL_CHAR.

Example #1

If an application specifies the following:

    SELECT empno FROM employees WHERE

    --(*vendor(Microsoft),product(ODBC)

       fn CONVERT(empno,SQL_CHAR)*)--

    LIKE '1%'

or its equivalent in shorthand form:

    SELECT empno FROM employees WHERE

    {fn CONVERT(empno,SQL_CHAR)} LIKE '1%'

A driver that supports an ORACLE DBMS would translate the request to:

   SELECT empno FROM employees

    WHERE to_char(empno) LIKE '1%'

A driver that supports a Sybase SQL Server DBMS would translate the request to:

    SELECT empno FROM employees

    WHERE convert(char,empno) LIKE '1%'

Example #2

If an application specifies the following:

    SELECT

    --(*vendor(Microsoft),product(ODBC)

       fn ABS(empno)*)--,

    --(*vendor(Microsoft),product(ODBC)

       fn CONVERT(empname,SQL_SMALLINT)*)--

    FROM employees WHERE empno <> 0

or its equivalent in shorthand form:

    SELECT {fn ABS(empno)},

    {fn CONVERT(empname,SQL_SMALLINT)}

    FROM employees WHERE empno <> 0

A driver that supports an Oracle DBMS would translate the request to:

    SELECT abs(empno), to_number(empname)

    FROM employees

    WHERE empno <> 0

A driver that supports a Sybase SQL Server DBMS would translate the request to:

    SELECT abs(empno), convert(smallint, empname)

    FROM employees

    WHERE empno != 0


 Data Sources Dialog Box

Use this dialog to add, modify, or delete data sources. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Setup...

Click this button to view the Setup dialog box for the data source you selected. In the Setup dialog box, you can create or modify a data source. Choose from one of the following drivers to view the Setup dialog box:

Informix 5 Driver	Ingres 6.4 Driver

Oracle7 Driver	Sybase DBLib Driver

Sybase SQL Server Driver


Add...

Click this button to add a data source to the list. You will see the Add Data Source dialog box.


 Drivers...

You see this dialog when you click the Drivers... button in the Data Sources dialog box. From this dialog, you may choose to add or delete drivers from your system.


 Options...

You see this dialog when you click on the Options... button in the Data Sources dialog box. From this dialog, you may choose to enable or disable tracing.


 Add Data Source Dialog Box

Use this dialog box to select a driver for which you want to add a data source. When you click OK, the ODBC Setup dialog box for your driver appears where you can set up your data source. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


 ODBC Informix 5 Setup Dialog Box

Use this dialog box to set up data sources for the Informix 5 driver. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Data Source Name

Enter the name of the data source. The data source name is defined by you---that is, it can be any name that you choose.


Description

Enter a description of the data source. This is an optional field that describes the database driver to which the data source connects. The data source description is defined by you---that is, it can be any string that you choose.


Translation Information

If you must translate data from your data source to your application, click on the Select button. The Select Translator dialog box appears and gives you a choice of installed translation DLLs. Choose a translation DLL and click OK. The translation DLL that you specify must be one that you supply---the Visigenic DriverSet does not provide a translation DLL.


Host Name

Enter the name of the machine on which the INFORMIX-OnLine or INFORMIX-SE database server resides.


Service Name

Enter the name of the network service on your machine. The service is the name assigned to your Informix engine process running on your machine. Usually, the service is sqlexec. Confirm the service name with your system administrator.


User Name

Enter your user name. Your user name is the host user ID.


Database

Enter the database name. The database name is the name of the INFORMIX-OnLine or INFORMIX-SE database you want to access through the Informix driver.


NoHoldCursors

Check this option if you want to disable hold cursors. Checking this option can improve performance.

Leave this option unchecked if you need hold cursors enabled to maintain your cursor positioning within a result set between connections.

NOTE:  For backward compatibility with the Visigenic 1.02 DriverSet, leave this option unchecked.


TrueCharPrecision

Check this option to use the true character precision. When checked, the precision for the char data type is returned as 32767 for the INFORMIX-OnLine engine, and 32511 for the INFORMIX-SE engine.

Leave this option unchecked if you want a precision of 254 returned; for example, if you are using Microsoft Access, you would leave this option unchecked. The default is unchecked.


TxnDMLOnly

Check this option if you are using Microsoft Access with the INFORMIX-SE engine. When you are using the INFORMIX-SE engine with translation logging turned on and this option checked, a call to SQLGetInfo(SQL_TXN_CAPABLE) returns SQL_TC_DML. Otherwise, SQL_TC_DDL_IGNORE is returned. This option has no effect on connections to the INFORMIX-OnLine engine.


 ODBC Ingres 6.4 Setup Dialog Box

Use this dialog box to set up data sources for the Ingres 6.4 driver. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Server Name

Enter the name of the virtual node that you defined using CA-Ingres/NETU.


User Name

Enter your database user name. This can be any CA-Ingres user name. If the user name is left blank, your system user ID will be used instead.


Database

Enter the name of the CA-Ingres database that you want to access through the driver.


 ODBC Oracle7 Setup Dialog Box

Use this dialog box to set up data sources for the Oracle7 driver. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


User Name

Enter your database user name. The user name is your database user ID.


SQL*Net Connect String

Enter the SQL*Net connect string for the Oracle7 Server engine. The SQL*Net connect string identifies the Oracle7 Server engine that you want to access.


Buffer Size

Enter a number to designate the size of a buffer (in bytes) for use in caching result sets. To determine the buffer size, take the maximum column size and multiply by the number of rows to be returned. Each column of a result set has its own buffer. The default value is 40000 bytes----the minimum is 1000 bytes, and the maximum is 60000 bytes.


Row Limit

Enter the maximum number of rows to cache (in the driver) from the data source. Use this option to limit the number of rows returned. The default value is 400 rows----the minimum is 1 row, and the maximum is 500 rows.


System Table

Check this option to expand the definition of a system table with respect to an Oracle DBMS. When this option is checked, a request from SQLTables() returns SYSTEM TABLE for all tables, synonyms, and views owned by SYS or SYSTEM.

If you do not set this option, SQLTables() returns values as follows: SYNONYM for all synonyms, VIEW for all views, SYSTEM TABLE for all tables owned by SYS or SYSTEM, and TABLE for all other tables.


Capitalize catalog arguments

Check this option to convert all arguments in catalog functions to uppercase. Otherwise, arguments are case-sensitive.

The default Oracle7 database behavior is that all arguments are uppercase, but the Visigenic Oracle7 driver puts double quotes around arguments so that case is meaningful. To follow the Oracle7 database default behavior, and for backward compatibility with the 1.02 DriverSet, check this option. For optimal functionality with Microsoft Windows 95 applications, leave this option unchecked.


Number/Float Mapping

Check this option for backward compatibility with the Visigenic 1.02 DriverSet. Leave this option unchecked for optimal mapping with Microsoft Windows 95 applications.

Specifically, when you check this option, the number type maps to SQL_DECIMAL, and the float type maps to SQL_DOUBLE. The default is unchecked.


TXN_CAPABLE

Check this option for backward compatibility with the Visigenic 1.02 DriverSet. Leave this option unchecked for optimal performance with 16-bit, Windows 3.1-compatible applications such as Microsoft Access.

Specifically, when you have this option checked, a call to SQLGetInfo(SQL_TXN_CAPABLE) returns SQL_TC_DML. Otherwise, SQL_TC_DDL_COMMIT is returned.


 ODBC Sybase DBLib Setup Dialog Box

Use this dialog box to set up data sources for the Sybase DBLib driver. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Cursor Caching

Check the Cursor Caching option to improve performance at the expense of greater connection usage. When the Cursor Caching option is set, a DB Library connection is allocated or borrowed the first time a statement handle executes a cursor query through a SELECT statement. The connection stays allocated past the end of a fetch until it is borrowed for a subsequent cursor query on another statement handle. This improves performance at the expense of increasing connection usage.

If you do not set this option, a DB Library connection allocated to an ODBC statement handle is released the moment the statement completes a row fetch. This reduces the connection requirements at the expense of incurring overhead by reopening connections each time a query is re-executed.

The setting you choose for the Cursor Caching option may require that your system administrator re-configure the servers DB Library connection count. Refer to Configuring the Connection Count for Cursor Caching for information your system administrator needs to perform this re-configuration.


Force Prepare

The default setting for the Force Prepare option is off. This setting optimizes the performance of the driver with respect to preparing and executing SQL statements. Checking the option can be useful in some circumstances. Refer to Setting the Force Prepare Option for more information.


 ODBC Sybase SQL Server 10 Setup Dialog Box

Use this dialog box to set up data sources for the Sybase SQL Server 10 driver. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Server

Enter the name of the Sybase SQL Server engine that you want to access.


User Name

Enter your database user name. The user name is your database user ID.


Database

Enter the database name. The database name is the name of the Sybase SQL Server database that you want to access through the driver.


Quoted Identifiers

Check the Quoted Identifiers option to enable any character string enclosed in double quotes to be treated as an identifier. Checking this option embeds all printable characters in a string. For example, this is useful for including a space in a value----such as john smith.  The default is unchecked.


 ODBC Informix 5 Connect Dialog Box

Use this dialog box to connect to an Informix 5 data source. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Host Name

Enter the name of the host you want to access. The host name is the name of the machine that the INFORMIX-OnLine or INFORMIX-SE database server resides on. The host name is case sensitive.


Service Name

Enter the name of the service you want to access. The default service is sqlexec. Confirm the service name with your system administrator.


User Name

Enter your user name for the host to which you want to connect. The user name is your host user ID.


Password

Enter your password. This is the password for the host to which you want to connect.


Database

Enter the name of the INFORMIX-OnLine or INFORMIX-SE database that contains the tables you want to access, and then click OK.


 ODBC Ingres 6.4 Connect Dialog Box

Use this dialog box to connect to an Ingres 6.4 data source. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Server Name

Enter your CA-Ingres server name. This is the name of the virtual node defined using CA-Ingres/NETU. The server name is case sensitive.


User Name

Enter your CA-Ingres database user id. The user ID is case sensitive.


Database

Enter the name of the CA-Ingres database that contains the tables you want to access, and click OK.


 ODBC Oracle7 Connect Dialog Box

Use this dialog box to connect to an Oracle7 data source. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


User Name

Enter your Oracle7 Server user name. The user name is case sensitive.


Password

Enter your Oracle7 Server password. This is the password for the Oracle7 Server that you want to access.


Connect String

Enter the SQL*Net connect string for the Oracle7 Server you want to access, and then click OK. The SQL*Net connect string identifies the Oracle7 server.


 ODBC Sybase DBLib Connect Dialog Box

Use this dialog box to connect to a Sybase DBLib data source. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


 ODBC Sybase SQL Server 10 Connect Dialog Box

Use this dialog box to connect to a Sybase SQL Server 10 data source. Click below where the hand appears to find out information about specific areas of the dialog box. Click on the triangle button in the upper left corner for other DriverSet dialog boxes.


Server

Enter the name of the Sybase SQL Server engine you want to access. The server name is case sensitive.


User Name

Enter your Sybase SQL Server login ID. The login ID is case sensitive.


Password

Enter your password. This is the password for the Sybase SQL Server database to which you want to connect.


Database

Enter the name of the Sybase SQL Server database that contains the tables you want to access, and then click OK.


ODBC Architecture

The following diagram illustrates the ODBC architecture.


DriverSet Index

A

Adding a data source

API conformance

Core API functions

Level 1 API functions

Level 2 API functions

levels of

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Architecture of ODBC

Attributes, connection string

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

Sybase DBLib driver

Sybase SQL Server 10 driver

B

C

Configuring Data Sources

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

Sybase DBLib driver

Sybase SQL Server 10 driver

Conformance

API levels, overview

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

SQL grammar, overview

Sybase DBLib driver

Sybase SQL Server 10 driver

Connection String attributes

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

Sybase DBLib driver

Sybase SQL Server 10 driver

Conversion, explicit data type

Core Level functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Core SQL grammar

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

D

Data source specification entry in ODBC.INI file

Data sources

adding

connecting to

definition of

modifying

ODBC.INI file, how defined in

setting up

Data type conversion, explicit

Data types

explicit conversions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Database application, definition of

Date functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

DBMS, definition of

Default data source specification

Driver Manager, definition of

Drivers

Informix 5

Ingres 6.4

Oracle7

Sybase DBLib

Sybase SQL Server 10

DriverSet

components of

definition

E

Environment variable, setting

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

Sybase DBLib driver

Sybase SQL Server 10 driver

Error messages, format of

Explicit Data Type Conversion

Extended SQL grammar

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

F

Files

error message, format of

ODBC.INI

Functions, ODBC API

Core API functions

Level 1 API functions

Level 2 API functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

G

Grammar, SQL

Core

Extended

levels of conformance

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Minimum

H

I

II-SYSTEM environment variable, setting

Informix 5 driver

adding data sources

API conformance

connect dialog box

connecting to a data source

connection string attributes

data source connection

data sources, adding

data types

mapping to ODBC

supported

date functions, supported

environment variables, setting

extensions to SQL, supported

functions, supported API

INFORMIXDIR variable, setting

modifying data sources

numeric functions supported

ODBC conformance levels

options for functions, supported

PATH variable, setting

scalar functions, supported

setup data source dialog box

setting up the driver

SQL conformance

SQL extensions, supported

stored procedures, using

string functions, supported

system functions, supported

system requirements

INFORMIXDIR variable, setting

Ingres 6.4 driver

adding data sources

API conformance

connect dialog box

connecting to a data source

connection string attributes

data source connection

data sources, adding

data types

mapping to ODBC

supported

date functions, supported

environment variable, setting

extensions to SQL, supported

functions, supported API

II-SYSTEM variable, setting

modifying data sources

numeric functions, supported

ODBC conformance levels

options for functions, supported

scalar functions, supported

setup data source dialog box

setting up the driver

SQL conformance

SQL extensions, supported

string functions, supported

system functions, supported

system requirements

J

K

L

Level 1 API functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Level 2 API functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

M

Messages, format of

Minimum SQL grammar

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

modifying a data source

N

Numeric functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

O

ODBC

API functions

architecture

conformance standards

data types

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

error messages

extensions to SQL

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

ODBC Administrator

adding data sources with

ODBC.INI file, how it handles

ODBC API functions

Core API functions

Level 1 API functions

Level 2 API functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

ODBC Options section in ODBC.INI file

ODBC.INI File

Data Source Specification section

Default Data Source Specification section

file format

ODBC Data Sources section

ODBC Options section

Oracle7 driver

adding data sources

API conformance

connect dialog box

connecting to a database

SQLConnect(), using

SQLDriverConnect(), using

connecting to a data source

connection string attributes

data source connection

data sources, adding

data types

mapping to ODBC

supported

date functions, supported

environment variable, setting

extensions to SQL, supported

functions, supported API

modifying data sources

numeric functions, supported

ODBC conformance levels

options for functions, supported

scalar functions, supported

setup data source dialog box

setting up the driver

SQL conformance

SQL extensions, supported

string functions, supported

system functions, supported

system requirements

P

Q

R

S

Scalar functions

date functions

explicit data type conversion

numeric functions

string functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

system functions

time functions

Setup dialog box

SQL conformance

Core SQL grammar

Extended SQL grammar

levels of

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Minimum SQL grammar

String functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Sybase DBLib driver

adding data sources

API conformance

connect dialog box

connecting to a data source

connection string attributes

cursor caching

connection count, reconfiguring for

performance, improving with

data source connection

data sources, adding

data types

mapping to ODBC

supported

date functions, supported

deadlock, avoiding

environment variable, setting

error states, checking

extensions to SQL, supported

force prepare option, setting

functions, supported API

isolation levels, supported

modifying data sources

multiple result sets, using

numeric functions, supported

ODBC conformance levels

options for functions, supported

performance, improving

cursor caching, with

force prepare option, with

post-installation procedure

repeatable reads, performing

run-time behavior, differences

setup data source dialog box

setting up the driver

SQL conformance

SQL extensions, supported

string functions, supported

syntax and semantic errors, reporting

system functions, supported

system requirements

Sybase SQL Server 10 driver

adding data sources

API conformance

connect dialog box

connecting to a data source

connection string attributes

data source connection

data sources, adding

data types

mapping to ODBC

supported

date functions, supported

environment variable, setting

extensions to SQL, supported

functions, supported API

modifying data sources

multiple result sets, using

numeric functions, supported

ODBC conformance levels

options for functions, supported

performance, improving

scalar functions, supported

setup data source dialog box

setting up the driver

SQL conformance

SQL extensions, supported

string functions, supported

system functions, supported

system requirements

System functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

System requirements

Informix 5 driver

Ingres 6.4 driver

Oracle7 driver

Sybase DBLib driver

Sybase SQL Server 10 driver

T

Time functions

Informix 5 driver, supported by

Ingres 6.4 driver, supported by

Oracle7 driver, supported by

Sybase DBLib driver, supported by

Sybase SQL Server 10 driver, supported by

Trace, definition of

Translation libraries, access to

U

V

W

X

Y

Z