C 中的嵌入式 SQL 程序如何在后端执行?

How embedded SQL program in C gets executed as in the backend?

当使用嵌入式 SQL 编写 C 程序时(例如:假设创建 table 时插入了值),它如何在显示输出之前在后端执行 table 在前端? 感谢帮助...!

  • SQL 语句嵌入到宿主语言中,例如:C
  • 所以,我们有 SQL 语句和 C 语言语句,并且在这个 在这种情况下,SQL 语句嵌入在 C 源代码中。
  • 宿主语言代码由宿主编译器编译,嵌入式语言代码首先由嵌入式SQL预处理器预处理,预处理器的输出只是C代码,是C库调用,由C编译编译器。

由于我们有像#include、#define 这样的指令用于 C 预处理器,我们有很少的指令用于 SQL 嵌入式预处理器,如:EXEC SQL begin declare sectionEXEC SQL end declare section

EXEC SQL begin declare section;
int cno;
varchar cname[31];
varchar street[31];
int zip;
char phone[13];
EXEC SQL end declare section;

此处,SQL嵌入式预处理器转换如下所示:-

/* varchar cname[31]; */
struct {
unsigned short len;
unsigned char arr[31];
} cname;

这只是为了让您了解嵌入式 SQL 的工作原理。更详细的介绍可以参考Oracle-8 Embedded SQL