跳至主要內容

KlustronDB大约 3 分钟

第 36 章 ECPG - C 中的嵌入式 SQL

目录

36.1. 概念

36.2. 管理数据库连接 : 36.2.1. 连接到数据库服务器

[36.2.2. 选择一个连接](ecpg-connect.md#ECPG-SET-CONNECTION)

[36.2.3. 关闭一个连接](ecpg-connect.md#ECPG-DISCONNECT)

36.3. 运行 SQL 命令 : 36.3.1. 执行 SQL 语句

[36.3.2. 使用游标](ecpg-commands.md#ECPG-CURSORS)

[36.3.3. 管理事务](ecpg-commands.md#ECPG-TRANSACTIONS)

[36.3.4. 预备语句](ecpg-commands.md#ECPG-PREPARED)

36.4. 使用主变量 : 36.4.1. 概述

[36.4.2. 声明小节](ecpg-variables.md#ECPG-DECLARE-SECTIONS)

[36.4.3. 检索查询结果](ecpg-variables.md#ECPG-RETRIEVING)

[36.4.4. 类型映射](ecpg-variables.md#ECPG-VARIABLES-TYPE-MAPPING)

[36.4.5. 处理非简单 SQL 数据类型](ecpg-variables.md#ECPG-VARIABLES-NONPRIMITIVE-SQL)

[36.4.6. 指示符](ecpg-variables.md#ECPG-INDICATORS)

36.5. 动态 SQL : 36.5.1. 执行没有结果集的语句

[36.5.2. 执行一个有输入参数的语句](ecpg-dynamic.md#ECPG-DYNAMIC-INPUT)

[36.5.3. 执行一个有结果集的语句](ecpg-dynamic.md#ECPG-DYNAMIC-WITH-RESULT)

36.6. pgtypes 库 : 36.6.1. 字符串

[36.6.2. numeric类型](ecpg-pgtypes.md#ECPG-PGTYPES-NUMERIC)

[36.6.3. 日期类型](ecpg-pgtypes.md#ECPG-PGTYPES-DATE)

[36.6.4. 时间戳类型](ecpg-pgtypes.md#ECPG-PGTYPES-TIMESTAMP)

[36.6.5. 区间类型](ecpg-pgtypes.md#ECPG-PGTYPES-INTERVAL)

[36.6.6. decimal类型](ecpg-pgtypes.md#ECPG-PGTYPES-DECIMAL)

[36.6.7. pgtypeslib 的 errno 值](ecpg-pgtypes.md#ECPG-PGTYPES-ERRNO)

[36.6.8. pgtypeslib 的特殊常量](ecpg-pgtypes.md#ECPG-PGTYPES-CONSTANTS)

36.7. 使用描述符区域 : 36.7.1. 命名 SQL 描述符区域

[36.7.2. SQLDA 描述符区域](ecpg-descriptors.md#ECPG-SQLDA-DESCRIPTORS)

36.8. 错误处理 : 36.8.1. 设置回调

[36.8.2. sqlca](ecpg-errors.md#ECPG-SQLCA)

[36.8.3. `SQLSTATE` 与 `SQLCODE`](ecpg-errors.md#ECPG-SQLSTATE-SQLCODE)

36.9. 预处理器指令 : 36.9.1. 包括文件

[36.9.2. define 和 undef 指令](ecpg-preproc.md#ECPG-DEFINE)

[36.9.3. ifdef、ifndef、else、elif 以及 endif 指令](ecpg-preproc.md#ECPG-IFDEF)

36.10. 处理嵌入式 SQL 程序

36.11. 库函数

36.12. 大对象

36.13. C++ 应用 : 36.13.1. 主变量的可见范围

[36.13.2. 使用外部 C 模块的 C++ 应用开发](ecpg-cpp.md#ECPG-CPP-AND-C)

36.14. 嵌入式 SQL 命令 : ALLOCATE DESCRIPTOR — 分配一个 SQL 描述符区域

[CONNECT](ecpg-sql-connect.md) — 建立一个数据库连接

[DEALLOCATE DESCRIPTOR](ecpg-sql-deallocate-descriptor.md) — 释放一个 SQL 描述符区域

[DECLARE](ecpg-sql-declare.md) — 定义一个游标

[DESCRIBE](ecpg-sql-describe.md) — 得到有关一个预备语句或结果集的信息

[DISCONNECT](ecpg-sql-disconnect.md) — 终止一个数据库连接

[EXECUTE IMMEDIATE](ecpg-sql-execute-immediate.md) — 动态地准备和执行一个语句

[GET DESCRIPTOR](ecpg-sql-get-descriptor.md) — 从一个 SQL 描述符区域得到信息

[OPEN](ecpg-sql-open.md) — 打开一个动态游标

[PREPARE](ecpg-sql-prepare.md) — 准备一个语句用于执行

[SET AUTOCOMMIT](ecpg-sql-set-autocommit.md) — 设置当前会话的自动提交行为

[SET CONNECTION](ecpg-sql-set-connection.md) — 选择一个数据库连接

[SET DESCRIPTOR](ecpg-sql-set-descriptor.md) — 在一个 SQL 描述符区域中设置信息

[TYPE](ecpg-sql-type.md) — 定义一种新数据类型

[VAR](ecpg-sql-var.md) — 定义一个变量

[WHENEVER](ecpg-sql-whenever.md) — 指定一个要在一个 SQL 语句导致发生一个特定类别的情况时要采取的动作

36.15. Informix兼容模式 : 36.15.1. 附加类型

[36.15.2. 附加的/缺少的 嵌入式 SQL 语句](ecpg-informix-compat.md#ECPG-INFORMIX-STATEMENTS)

[36.15.3. Informix-兼容的 SQLDA 描述符区域](ecpg-informix-compat.md#ECPG-INFORMIX-SQLDA)

[36.15.4. 附加函数](ecpg-informix-compat.md#ECPG-INFORMIX-FUNCTIONS)

[36.15.5. 额外的常量](ecpg-informix-compat.md#ECPG-INFORMIX-CONSTANTS)

36.16. 内部

这一章描述了用于PostgreSQL的嵌入式SQL包。它由 Linus Tolke(<linus@epact.se>)和 Michael Meskes(<meskes@postgresql.org>)编写。最初它是为了与C一起工作而编写的。它也能与C++配合,但是它还不识别所有的C++结构。

这份文档还远没有完成。但是因为这个结构是标准化的,额外的信息可以在有关 SQL 的很多资源中找到。