BUG: Double Quotes in ESQL for C Can Cause C Compiler Errors

ID: Q125228


The information in this article applies to:
  • Microsoft Embedded SQL for C Programmer's Toolkit, version 4.22


SYMPTOMS

When attempting to compile an Embedded SQL for C (ESQL-C) application after running the program through the precompiler (NSQLPREP.EXE and SQLPREP.EXE),the following syntax errors are produced by the compiler:

syntax error : missing ')' before identifier ....
illegal escape sequence


CAUSE

When precompiling with the /NOSQLACCESS parameter, if there are Transact- SQL statements with character strings in double quotes, the precompiler incorrectly builds the query string by using \\" instead of \" in the resulting .C file.


WORKAROUND

There are several ways to avoid this situation:

  • Use single quotes (') in the Transact-SQL character strings instead of double quotes (").


  • Use the /SQLACCESS option on the precompile. This will result in a stored procedure being generated for the Transact-SQL statement.


  • Edit the .C file after the precompile replacing the \\" with \" in the sqlxcall() function.



STATUS

Microsoft has confirmed this to be a problem in Microsoft Embedded SQL for C Programmer's Toolkit version 4.22. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Additional query words: ESQL for C Windows NT

Keywords : kbprg SSrvESQL_C
Version : WINDOWS:4.22
Platform : WINDOWS
Issue type :


Last Reviewed: December 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.