Oracle8 ODBC Driver Version 8.0.5.0.0
                              Release Notes
			       
           Copyright 1996,1998 Oracle Corporation. All Rights Reserved.
			       

  This file contains the following sections:

	1.  Post-Installation
	2.  Hardware Required
	3.  Software Required
	4.  Functionality
	5.  New Features
        6.  Data Conversions
        7.  Oracle8 Lob Datatypes
        8.  Known Software Problems
        9.  Software Problems Fixed

1. Post-Installation                   

    1. Use the Microsoft(R) ODBC Administrator to configure your 
       Oracle8 ODBC Driver data sources. Refer to the Oracle8 ODBC driver help
       file section entitled Configuring the Data Source.

2. Hardware Required

   Refer to PRODDESC.TXT enclosed in your software distribution kit.

3. Software Required

   Refer to PRODDESC.TXT enclosed in your software distribution kit.

4. Functionality

   Refer to PRODDESC.TXT enclosed in your software distribution kit.

5. New Features          

   Refer to the Oracle8 ODBC Driver help file section entitled New Features.

6. Data Conversions

    The Oracle8 ODBC Driver follows the Microsoft(R) ODBC 3.00 Software 
    Development Kit (SDK) guidelines for manipulating and displaying
    real and double data types. Precision (the maximum number of digits used)
    of SQL_DOUBLE and SQL_FLOAT is 15.

    If double values are stored in a Oracle database precision for these data 
    types can be much greater than what ODBC currently supports. The end 
    result will be the loss of precision. For Example:

	A float data type defined in Oracle with the
	default precision contains a number such as:

		123.9991029382123

	When converted on the Windows Platform the number
	will drop precision to

		123.999102938212

    This loss of precision may have different behavior for different
    applications. For Microsoft Access(R), the user is not allowed to update 
    the data. Microsoft Access(R) thinks the data has changed, because Oracle
    has the value 123.9991029382123 and Microsoft Access(R) now has the
    original but truncated number 123.99910293821. Microsoft Access(R) cannot
    update the row using the 123.99910293821 truncated number as a selection
    criteria since that row does not exist in the Oracle Oracle8 database. 
    Only the original row with 123.9991029382123 exists in the Oracle Oracle8 
    database.

    In Microsoft Query(R) the display will be incorrect. Lets take for
    example the following double precision number to display:

		-1.123400000000000E-001

	with Microsoft Query(R) the number is displayed as

		-1.123400000000000E-00

    Microsoft Query(R) makes a call to SQLColAttributes returning the
    display size of 22. The format defined in the ODBC SDK for display of
    a double precision data is the following:

	Total 22 Length
	(a sign,15 digits,a decimal point,the letter E,a sign and 3 digits)

    Our example contains a total string length of 23 with 16 digits
    instead of the 15 digits for precision. This is why the data is displayed
    wrong. 

    In general to avoid precision problems using ODBC, ensure that data
    stored in the Oracle database for a double data type conform to the
    specifications described in the Microsoft ODBC Programmer's Reference and
    SDK Guide. 

7. Oracle8 LOB Datatypes

   The Oracle8 ODBC driver supports read access to columns which are of type
   BLOB, CLOB or BFILE.  The contents of a CLOB, BLOB or BFILE column must be 
   retreived through the SQLGetData routine.  

8. Known Software Problems for Oracle8 ODBC Driver

   1. The SQLSetStmtOption SQL_QUERY_TIMEOUT does not work if the database
      server is running on Windows NT.

   2. Connection in the format of username@servicename is not supported.

9.  Software Problems Fixed

                        Version 8.0.5.0.0

  - OCI in Oracle 8.0.5 includes a fix which allows the Oracle8 ODBC
    driver to work with Microsoft IIS.
    (Bug #661057)

  - Fixed SQLColumns to ignore escape sequences when checking for the
    maximum length of a Table Name.
    (Bug #664147)

  - Output parameters for dates are now returned from a stored procedure.
    (Bug #666849)

  - ODBC escape clauses for date,time and timestamp data were incorrectly
    parsed if the escape clause was in the form of {d'1967-01-15'} instead
    of {d '1967-01-15'}.
    (Bug #668518)

                        Version 8.0.4.4.0

  - Return SQL_DECIMAL instead of SQL_NUMERIC from SQLGetTypeInfo.
    Visual Basic uses setting in the Regional Setting control panel to
    identify what the Decimal symbol is for the country.
    Setting the Decimal symbol to a comma (located under the Number tab)
    tells Visual Basic to leave the comma as the decimal symbol.  If
    this setting was not turn on the comma would be removed.
    (Bug #637963)

  - Character Data is now null terminated for output parameters returned
    from a stored procedure.
    (Bug #662566)

  - Fixed memory corruption when SQL_ATTR_NOSCAN was set to TRUE.
    (Bug #650836)

  - Fixed parsing of outer join syntax when there are compound conditionals
    in the search condition.
    (Bug #648205)

  - Fixed memory leak when a statement handle is reused to prepare and execute
    SQL statements.
    (Bug 620910)

  - Fixed SQLTables to support 'empty string' as a valid parameter for
    catalog name, table owner, and table name.  This fix enables MSQuery's
    ability to select tables by owner.
    (Bug 652073)

  - Fixed support of SQL_NULL_DATA on SQLBindParameter when a statement is
    repeatedly executed and the StrLen_or_IndPtr parameter value gets changed
    to SQL_NULL_DATA.  Data from previous execute was getting reused.
    (Bug 652357)

                        Version 8.0.4.3.0

  - Return SQL_NUMERIC instead of SQL_DECIMAL from SQLGetTypeInfo.
    Fixed problem of an RDO select in Visual Basic failing on columns
    with decimal digits.  If the decimal separator character was ',' instead
    of '.' then Visual Basic was treating the ',' as a group separator and
    removing it.
    (Bug #637963)

  - Fixed problem of SQLExtendedFetch not working for catalog functions.
    This was causing Delphi 3 DB Explorer and Powerbuilder 6.0 to fail.
    (Bug #646134)

  - Fixed problem of selecting tables which included double byte characters.
    (Bug #633107)

  - Fixed problem of SQLBindParameter not inserting NULL data for parameters
    bound SQL_NULL_DATA.
    (Bug #647207, #649556)

  - Binary data is no longer being null terminated.

  - Increased SQL_MAX_PROCEDURE_NAME_LEN to 91 to accomodate specifying
    procedures within packages.

  - Added synonym support to the SQLStatistics, SQLTablePrivileges, and
    SQLSpecialColumns catalog functions.
    (Bug #638553)

  - Added support for scalar functions: QUARTER, WEEK, INSERT, REPEAT,
    and REPLACE.

  - Fixed memory leak of 100 bytes that was occuring on SQLDriverConnect.

  - Fixed parsing bugs of scalar function parameters.  Invoking functions
    as parameters was not always being parsed properly.  For example,
    {fn RIGHT({fn CURDATE()}, 5)} use to fail.

  - Fixed problems of associating external descriptors with a statement.
    An access violation would occur when the statement was dropped.

  - Fixed problem of ODBC install scripts not detecting older versions of
    ODBC installed.
    (Bug #631692)

                        Version 8.0.4.0.2

  - Updated Microsoft ODBC redistributable components to version 3.50.3609

  - Added support for SQLBrowseConnect.
    (Bug #618956)

  - Added support for SQLDescribeParam.  The Oracle database does not support
    returning information about input parameters.  The ODBC driver will return
    the following values for an input parameter:
      DataTypePtr      = SQL_VARCHAR
      ParameterSizePtr = 999
      DecimalDigitsPtr = 0
      NullablePtr      = SQL_NULLABLE
    (Bug #556749)

  - Added support for scalar functions: CEILING, FLOOR, SQRT, COS, LOG, EXP,
    LOG10, POWER, SIN, TAN, TRUNC, CHAR, ASCII.

  - Added support for SYNONYMS to SQLTables and SQLColumns.
    (Bug #591038)

  - Some of the metadata calls (for example SQLColumns) were improperly
    handling embedded underscore characters if the string length was set to
    SQL_NTS. (Bug #589676) 

  - The SQLProcedures and SQLProcedureColumns calls have been modified to
    locate and return information about ALL procedures and functions even if
    they are contained within a package.  Up to now, the calls only found
    procedures and functions that were outside of packages. The following
    examples show what procedures/functions are returned when.
    
        I have the following 8 stored prodecures:
            "BAR"
            "BARX"
            "XBAR"
            "XBARX"
            "SQLPROCTEST.BAR"
            "SQLPROCTEST.BARX"
            "SQLPROCTEST.XBAR"
            "SQLPROCTEST.XBARX"
    
        When I look for "%" or "%%%%%%" I get:
            ALL 8 procedures
    
        When I look for "%_" or "_%" I get:
            "BAR"
            "BARX"
            "XBAR"
            "XBARX"
    
        When I look for "." or ".%"  or "%.%" or "SQLProc%." or "SQLProc%.%"   I get:
            "SQLPROCTEST.BAR"
            "SQLPROCTEST.BARX"
            "SQLPROCTEST.XBAR"
            "SQLPROCTEST.XBARX"
     
        When I look for "%bar"  I get:
            "BAR"
            "XBAR"
    
        When I look for ".%bar" or "%.%bar" I get:
            "SQLPROCTEST.BAR"
            "SQLPROCTEST.XBAR"
     
        When I look for "SQLProc%" or ".SQLProc%" I get:
            nothing (0 rows)
    
  - Added support for OS authentication (OPS$ account). If the username
    is not specified the ODBC driver will request the Oracle server to use
    operating system account credentials to log the user in.
    (Bug #599378, #625269)


                        Version 8.0.4.0.1

  - SQLFetch was incorrectly processing columns after a call was made to
    SQLFreeStmt with the SQL_UNBIND option set. A side effect of the
    problem would cause the Oracle ODBC Driver to prematurely process
    BLOB data before the application asked for it. (No Bug)

  - SQLColAttribute and SQLGetDescField returned to small a display
    size for Columns where the scale was greater than the precision. (No Bug)

  - SQLGetTypeInfo no longer supports SQL_TINYINT, SQL_SMALLINT, SQL_BIGINT,
    SQL_INTEGER, SQL_FLOAT and SQL_REAL.  In attempting to map database
    definitions to these datatypes the ODBC driver was choosing mappings that
    could result in data overflow errors.  For example, a column defined as
    NUMBER(3) use to be mapped to SQL_TINYINT by default.  The range for
    SQL_TINYINT is smaller than the range of valid values for NUMBER(3). Now
    this column will be mapped to SQL_DECIMAL by default.

    Applications such as MSAccess store table meta-data when they link to the
    table.  In order to take advantage of this fix the link to the table will
    need to be recreated.
    (Bug #595436)

  - SQLGetInfo now returns both static and forward only
    cursor result sets (SQL_SO_FORWARD_ONLY | SQL_SO_STATIC) 
    when SQL_SCROLL_OPTIONS parameter is given.  (Bug #573989)

  - SQLFetchScroll, SQLExtendedFetch now return Blobs correctly
    during Array Fetchs.  (No Bug)

  - SQLNumParms now returns correct number of parameters for a PL/SQL
    begin/end block.  (No Bug)

  - SQLDriverConnect would connect with a Default DSN if the directory
    where the driver was located was greater than 32 characters. The
    login prompt screen would not display default values.  (No Bug)

  - SQLPrepare, SQLExecDirect and SQLNativeSql now discards the semicolon
    at the end of a SQL Statement.  (Bug #569244)

  - SQLBindParameter, SQLExecDirect, SQLExecute now returns the result
    length for OUTPUT or INPUT/OUTPUT parameters

                        Version 8.0.4.0.0

  - Return SQL_ERROR if a trigger, procedure or function is created with 
    PL/SQL compilation errors.  (Bug #563307)

  - Support parse of ALIAS in outer join.  (Bug #572621)

  - Support MOD scalar function.  (Bug #588509)

  - Fix the order of the result set for SQLProcedureColumns.  (Bug #590612) 

  - SQLGetCursorName and SQLSetCursorName properly return cursor names.  This
    functionality was implemented to support the Microsoft ODBC cursor library.
    However the Oracle ODBC driver does not support positioned updates.
    (Bug #555089)

  - SQLColAttribute correctly returns the precision of a column.  (No Bug)

  - Data-at-execution parameters for character data has been fixed.  (No Bug)

  - The prefetch count on the datasource configuration screen can now be
    set to 0.  (No Bug)

  - The ODBC Administrator is now installed into the system folder and has
    been removed from the Oracle installer directory.  (Bug #547411)

  - The Oracle ODBC driver DLLs are now installed into the Oracle installer
    directory and have been removed from the system folder.  (Bug #532713)

  - The SQORA.H file is now installed in the Oracle ODBC folder.  (Bug #522833)

  - The Oracle ODBC driver DLLs are now properly removed from the system on
    a deinstall.  (Bug #522831)


                        Version 8.0.3.0.2


  - Added support in SQLBindParameter to allow bulk Inserts and Updates
    to an Oracle Database (No Bug).

  - Fixed in SQLPutData when parameters were set to data-at-execution
    for SQL_CHAR and SQL_VARCHAR datatypes only the last SQLPutData
    buffer was written to the database (No Bug).

  - Fixed in SQLBindParameter a problem not detecting changed data when
    using null terminated strings (SQL_NTS) (No Bug).

  - Fixed in SQLGetData, SQLExecute, SQLExecDirect data corruption when
    retrieving and inserting SQL_TINYINT data.  The corruption would occur
    if the bound column or parameter was defined as a SQL_C_STINYINT,
    SQL_C_UTINYINT or SQL_TINYINT (No Bug).

  - Fixed in SQLGetData to detection for null data when retrieving
    binary data such as SQL_LONGVARBINARY (No Bug).

  - Fixed General Protection Fault in SQLPutData when a given buffer len
    was equal to zero (No Bug).

  - SQLTables no returns the correct table type in the result set
    for system tables (Bug #559182).


                        Version 8.0.3.0.1


  - Added support for SQLSetCursorName and SQLGetCursorName. 
    This corrected the problem of the ODBC cursor library not being
    loaded (Bug #444287).

  - Added support in SQLGetInfo for case sensitive identifiers
    (table owner, table name, column name) (Bug #545279).

  - Fixed General Protection Fault in SQLFetch, SQLExtendedFetch
    and SQLGetData when returning result of columns containing null
    dates (Bug #523849).

  - Fixed problem of properly interpreting the pcbValue parameter on 
    SQLBindParameter when the data type is not character or
    binary (Bug #537133).

  - Fixed in SQLBindParameter to properly initialized hour, minute and second
    fields of the Oracle date structure when binding an input parameter in
    the form {d 'yyyy-mm-dd'} (No Bug).

  - Fixed in SQLFreeStmt SQL_CLOSE option no longer unbinds the bounded
    column or parameters (No Bug).

  - SQL_NULL_DATA is now properly returned in SQLFetch,SQLExtendedFetch
    and SQLGetData for columns whose contents is NULL. This fixes the
    problem in PowerBuilder where columns containing nulls were being
    displayed with the values from the previous row instead of a null.
    This also fixes the problem where MSAccess and PowerBuilder were unable
    to update columns that contained a null value (No Bug).

  - The nullable column in the result set of SQLDescribeCol and 
    SQLColAttributes is returned properly.  It was returning the
    opposite value of what it should have been (No Bug).

  - SQLProcedureColumns now returns the correct value for 'scale' (No Bug).


****************************************************************************
Oracle is a registered trademark of Oracle Corporation.

Microsoft Access, Microsoft Query, Microsoft, MS are
registered trademarks of Microsoft Corporation. 

Microsoft Windows NT, Windows 95, Windows 98 and Open Database Connectivity 
are trademarks of Microsoft Corporation. 

PowerBuilder is a registered trademark of Sysbase Inc.

All other trademarks and registered trademarks are the property
of their respective owners.
****************************************************************************