Article ID: 273813 - Last Review: September 26, 2005 - Revision: 2.4 FIX: "Incorrect Syntax near the Keyword 'by' " Error Message with Column Names of "C", "CA" or "CAS"This article was previously published under Q273813 On This PageSYMPTOMS
If a table has been created in SQL Server that contains column names of "C", "CA" or "CAS", and if a statement is prepared that uses parameters against these columns, attempting to call the SQLDescribeParam function for these parameters generates the following error message:
42000 [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'by'.
CAUSE
In the call to SQLDescribeParam, a SQL statement is being constructed by the driver to retrieve the parameter metadata. The driver checks to see if a CASE function is included in this statement, and is incorrectly comparing the "C", "CA" and "CAS" column names against the CASE keyword. The comparison returns True, and the driver appends a GROUP BY clause on the end of the statement.
RESOLUTIONTo resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
300635
(http://support.microsoft.com/kb/300635/EN-US/
)
INFO: How to Obtain the Latest MDAC 2.6 Service Pack
HotfixThe English version of this fix should have the following file attributes or later:Microsoft SQL Server 7.0 Date Version Size File name ------------------------------------------------------- 9/08/2000 3.70.9.0 524,560 bytes Sqlsrv32.dll 9/08/2000 3.70.9.0 24,848 bytes Odbcbcp.dll Date Version Size File name ------------------------------------------------------------ 09/11/2000 2000.80.203.0 471,119 bytes Sqlsrv32.dll 09/11/2000 2000.80.203.0 90,112 bytes Sqlsrv32.rll 09/11/2000 2000.80.203.0 28,742 bytes Odbcbcp.dll WORKAROUNDTo work around this problem:
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was corrected in Microsoft Data Access Components (MDAC) 2.5 Service Pack 2, MDAC 2.6 Service Pack 1, and MDAC 2.7. MORE INFORMATION
This error occurs primarily when you construct INSERT statements, and when the column names of "C", "CA" or "CAS" are included in the field list. The error message does not occur if the SQL statement does not contain a field list. An ODBC trace or a SQL Profiler trace shows that the driver's internal SELECT statement has been incorrectly formed as: This fix is available for the Microsoft SQL Server 7.0 SP2 ODBC driver, and the Microsoft SQL Server 2000 ODBC driver. NOTE: Please use the files in SQL70_ColName_Fix.exe for SQL Server 7.0 and use the files in SQL2000_ColName_Fix.exe for SQL Server 2000. APPLIES TO
| Article Translations
|
Back to the top
