PRB: Microsoft ESQL for C Generates Compiler Error w/ an ArrayLast reviewed: September 15, 1997Article ID: Q173843 |
The information in this article applies to:
SYMPTOMSThe Visual C/C++ compiler generates the following compile error.
error C2231: '.iValue' : left operand points to 'struct', use ->The following code attempts to use an array to hold iID, and will show the problem:
// // Retrieves one row of results. The SELECT INTO statement is also a // singleton select EXEC SQL select iID INTO :gTest[iCount].iValue FROM tblTest where iID = 1; CAUSEThe current version of the NSQLPREP utility is not designed to handle array structures.
WORKAROUNDTo work around this problem, use a pointer as shown by the following code:
EXEC SQL begin declare section; typedef struct stTest { int iValue; } TEST; TEST * pCurrent = NULL; EXEC SQL end declare section; . . . // // Can use a pointer to fill array pCurrent = &gTest[iCount]; // // Retrieves one row of results. The SELECT INTO statement is also a // singleton select EXEC SQL select iID INTO :pCurrent->iValue FROM tblTest where iID = 1; |
Additional query words: ESQL E-SQL SQC
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |