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

Last reviewed: April 30, 1997
Article ID: Q125228
The information in this article applies to:
  • Microsoft Embedded SQL for C programmer's Toolkit, version 4.22
BUG# ESQL-C: 9940 (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 : 4.22 | 4.22 | 4.22
Platform : MS-DOS OS/2 WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 30, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.