我遇到这样一个问题,就是在我的.pc文件中加入了自己定义的头文件,如:
#include "My.h"
这个头文件中,定义了许多我需要结构体,假设My.h下定义有这样一个结构体
typedef struct
{
 
int  Id ;
char DateTime[10];
}MY_PR;
   
而我在.pc 中使用自己定义头文件中的结构体时, 使用方法如下:
int MyWork(MY_PR *temp)
{
    ....
    EXEC SQL AT db_name 
     SELECT  ID, Date_Time
     INTO  :temp->Id, :temp->DateTime
     FROM  xxx;/* 表名*/
却提示我 illegal structure reference operation各位大侠,这到底是什么原因呢,需要配置什么东西吗,谢谢啦

解决方案 »

  1.   

    EXEC SQL  BEGIN DECLARE SECTION; 
    #include "My.h" <=== 将头文件包含放在SQL声明中
    EXEC SQL  END DECLARE SECTION;int MyWork( temp )
    EXEC SQL  BEGIN DECLARE SECTION;
    MY_PR *temp; <=== 参数声明也需要放在SQL声明中,因为你在下面的SQL语句中使用到该参数
    EXEC SQL  END DECLARE SECTION;{
        ...
        EXEC SQL //AT db_name <== 不知道什么东西,暂时注释掉
            SELECT  ID, Date_Time
            INTO  :temp->Id, :temp->DateTime
            FROM  xxx;
        ...
    }已经编译通过,楼主看看吧