首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

include,该怎么解决

2013-01-17 
includeEXEC SQL include 和 include 有什么区别?[解决办法]EXEC SQL INCLUDE SQLCA#include sqlca.h这

include
EXEC SQL include 和 include 有什么区别?
[解决办法]
EXEC SQL INCLUDE SQLCA;
#include <sqlca.h>

这个效果是一样的。

但是二者还是有所不同
#include "foo.h"
在C的预处理阶段才会处理foo.h, 所以foo.h里只能有c的语句

EXEC SQL INCLUDE "foo.h"
在ESQL预处理阶段就会处理 foo.h, 所以 foo.h 里可以有 ESQL语句

下面的例子里需要在ESQL语句里使用foo.h定义的一个结构体,所以在foo.h里是有ESQL语句的,所以在foo.c里需要用
EXEC SQL INCLUDE "foo.h";
不能用
#include "foo.h"


/**
 * @file    foo.h
 * @brief   
 */

EXEC SQL BEGIN DECLARE SECTION;
struct foo {
    char name[10 + 1];
    int count;
};
EXEC SQL END   DECLARE SECTION;



/**
 * @file    foo.ec
 * @brief   
 */

EXEC SQL INCLUDE "foo.h";

int main(int argc, char *argv[])
{
    EXEC SQL BEGIN DECLARE SECTION;
    struct foo foo;
    EXEC SQL END   DECLARE SECTION;

    EXEC SQL SELECT COUNT(*) INTO :foo.count FROM T;

    return 0;
}

热点排行
Bad Request.