PRB: Microsoft ESQL for C Generates Compiler Error with an Array
ID: Q173843
|
The information in this article applies to:
-
Microsoft Embedded SQL for C Programmer's Toolkit, version 6.5
SYMPTOMS
The 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;
CAUSE
The current version of the NSQLPREP utility is not designed to handle array
structures.
WORKAROUND
To 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
Keywords : kbcode SSrvESQL_C SSrvProg
Version : WINDOWS:6.5
Platform : WINDOWS
Issue type : kbprb