Microsoft KB Archive/173843

= PRB: Microsoft ESQL for C Generates Compiler Error with an Array =

Article ID: 173843

Article Last Modified on 10/3/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q173843



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: kbprb kbcode KB173843

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.