Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: In-line Comments Parsed by Microsoft Oracle Driver


View products that this article applies to.

This article was previously published under Q180839

↑ Back to the top


Symptoms

When using in-line comments the Microsoft ODBC for Oracle driver may fail with the following error message:
"Syntax Error or Access Violation".

↑ Back to the top


Cause

The driver is incorrectly parsing in-line comments. So far, the word "IS" is the only word that has caused the error to occur.

↑ Back to the top


Resolution

Use the version of the driver that has this problem fixed. See the STATUS section. There is no work around to this problem. You cannot use in-line comments that contain the word "IS" using the currently released version of the driver.

NOTE: Version 1.0 of the Microsoft Oracle driver did not have this problem.

↑ Back to the top


Status

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem has been corrected in the Microsoft Oracle ODBC Driver version 2.573.2927 or higher. This driver is available in Visual Studio 6.0, the Data Access Data Access Software Development Kit (SDK) version 2.0 or higher, and Microsoft Data Access Components (MDAC) version 2.0 or higher. You can download the MDAC package from the following Web address:

↑ Back to the top


More information

In-line comments can be used to send optimizer hints to the Oracle database engine.

Steps to Reproduce Behavior

Using ODBCTest the problem can be reproduced.
  1. Open a Full Connection.
  2. Enter the following SQL:
          select empno, ename from emp
          where /* This is a comment */ 
          empno = 7369
    						
    NOTE: You may need to change the code above to reference a table in your schema.
  3. Execute the code.

    The following error message is received:
    SQLExecDirect:
    In:hstmt = 0x00301250, szSqlStr = "select empno, ename from emp where /* This is a comme...", cbSqlStr = -3 Return: SQL_ERROR=-1 stmt:szSqlState = "42000", *pfNativeError = 0, *pcbErrorMsg = 67, *ColumnNumber = -2, *RowNumber = -2
    MessageText = "[Microsoft][ODBC driver for Oracle]Syntax error or access violation"
If you remove the word "IS" in the comment you will not get an error message.

↑ Back to the top


Keywords: KB180839, kboracle, kbfix, kbdriver, kbdatabase, kbbug

↑ Back to the top

Article Info
Article ID : 180839
Revision : 5
Created on : 10/15/2003
Published on : 10/15/2003
Exists online : False
Views : 308