include

from2012 2013-01-06 10:23:47
EXEC SQL include 和 include 有什么区别?
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
from2012 2013-01-06
  • 打赏
  • 举报
回复
求高手详解!不胜感谢~~!
from2012 2013-01-06
  • 打赏
  • 举报
回复
EXEC SQL INCLUDE SQLCA 与 #include<sqlca.h> 效果是否一样?
from2012 2013-01-06
  • 打赏
  • 举报
回复
引用 5 楼 mymtom 的回复:
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语句 ……
特别要谢谢五楼!讲得很详细,理解了!感谢各位的路过!
ForestDB 2013-01-06
  • 打赏
  • 举报
回复
可能最终都会转成C语句,可以看预处理的结果。
ForestDB 2013-01-06
  • 打赏
  • 举报
回复
抽象层次不同,一个是C的,一个是SQL的。
mymtom 2013-01-06
  • 打赏
  • 举报
回复
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;
}
赵4老师 2013-01-06
  • 打赏
  • 举报
回复
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧