我遇到这样一个问题,就是在我的.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各位大侠,这到底是什么原因呢,需要配置什么东西吗,谢谢啦
#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各位大侠,这到底是什么原因呢,需要配置什么东西吗,谢谢啦
#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;
...
}已经编译通过,楼主看看吧