企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Chapter 33\. ECPG - 在C中嵌入SQL **Table of Contents** + 33.1\. 概念 + 33.2\. 管理数据库连接 + 33.2.1\. 与数据库服务器连接 + 33.2.2\. 选择一个连接 + 33.2.3\. 关闭一个连接 + 33.3\. 运行SQL命令 + 33.3.1\. 执行SQL语句 + 33.3.2\. 使用游标 + 33.3.3\. 管理事务 + 33.3.4\. 预备语句 + 33.4\. 使用宿主变量 + 33.4.1\. 概述 + 33.4.2\. 声明段 + 33.4.3\. 检索查询结果 + 33.4.4\. 类型映射 + 33.4.5\. 处理非初级的SQL数据类型 + 33.4.6\. 指示器 + 33.5\. 动态SQL + 33.5.1\. 执行没有结果集的语句 + 33.5.2\. 执行具有输入参数的语句 + 33.5.3\. 执行带有结果集的语句 + 33.6\. pgtypes 库 + 33.6.1\. 数值类型 + 33.6.2\. 日期类型 + 33.6.3\. 时间戳类型 + 33.6.4\. 区间类型 + 33.6.5\. 十进制类型 + 33.6.6\. pgtypeslib的errno值 + 33.6.7\. pgtypeslib的特殊常量 + 33.7\. 使用描述符范围 + 33.7.1\. 命名SQL描述符范围 + 33.7.2\. SQLDA描述符范围 + 33.8\. 错误处理 + 33.8.1\. 设置回调 + 33.8.2\. sqlca + 33.8.3\. `SQLSTATE` vs. `SQLCODE` + 33.9\. 预处理器指令 + 33.9.1\. 包含文件 + 33.9.2\. define和undef指令 + 33.9.3\. ifdef,ifndef,else,elif和endif指令 + 33.10\. 处理嵌入的SQL程序 + 33.11\. 库函数 + 33.12\. 大对象 + 33.13\. C++应用程序 + 33.13.1\. 宿主变量范围 + 33.13.2\. C++应用程序开发与外部C模块 + 33.14\. 嵌入的SQL命令 + [ALLOCATE DESCRIPTOR](#calibre_link-28) -- 分配一个SQL描述区 + [CONNECT](#calibre_link-2017) -- 建立数据库连接 + [DEALLOCATE DESCRIPTOR](#calibre_link-2018) -- 重新分配SQL描述符区域 + [DECLARE](#calibre_link-25) -- 定义游标 + [DESCRIBE](#calibre_link-24) -- 获得关于预备语句或者结果集的信息 + [DISCONNECT](#calibre_link-27) -- 终止数据库连接 + [EXECUTE IMMEDIATE](#calibre_link-465) -- 动态准备和执行语句 + [GET DESCRIPTOR](#calibre_link-29) -- 从SQL标识符区域获得信息 + [OPEN](#calibre_link-2036) -- 打开一个动态游标 + [PREPARE](#calibre_link-1996) -- 准备一个执行语句 + [SET AUTOCOMMIT](#calibre_link-2066) -- 设置当前会话自动提交操作 + [SET CONNECTION](#calibre_link-2019) -- 选择一个数据库连接 + [SET DESCRIPTOR](#calibre_link-651) -- 设置SQL描述符区域信息 + [TYPE](#calibre_link-650) -- 定义新的数据类型 + [VAR](#calibre_link-652) -- 定义一个变量 + [WHENEVER](#calibre_link-2067) -- 当SQL语句导致一个要发生的特定类条件时, 则指定要采取的行动 + 33.15\. Informix兼容模式 + 33.15.1\. 附加类型 + 33.15.2\. 附加的/失踪的嵌入的SQL语句 + 33.15.3\. Informix兼容SQLDA描述符区域 + 33.15.4\. 附加函数 + 33.15.5\. 附加常量 + 33.16\. 内部 这章描写一种用于PostgreSQL的嵌入SQL包。 它是由Linus Tolke(`<[linus@epact.se](mailto:linus@epact.se)>`)和 Michael Meskes(`<[meskes@postgresql.org](mailto:meskes@postgresql.org)>`)写的。 最初它是为了在C里面使用书写的。它也可以用于C++, 但是它还不能识别所有C++构造。 这份文档相当不完整。但是因为这个接口是标准, 所以我们可以在有关SQL的资源里找到许多额外的信息。