iqsqlpp SQL 预处理器实用程序
SAP IQ SQL 预处理器实用程序 iqsqlpp 将输入文件 (.sqc) 中的 SQL 语句转换为 C 语言源代码并置于输出文件 (.c) 中。
嵌入式 SQL 是用于 C 和 C++ 编程语言的数据库编程接口。嵌入式 SQL 由混杂在(嵌入于)C 或 C++ 源代码中的 SQL 语句组成。这些 SQL 语句先由 SQL 预处理器转换为 C 或 C++ 源代码,然后您再进行编译。
语法
参数
下表列出了 iqsqlpp 实用程序的可用选项。
选项说明-d理想数据大小。-e将不符合要求的 SQL 语法标记为错误。 的允许值有: c03 – 标记不是核心 SQL/2003 语法的语法 p03 – 标记不是完整级 SQL/2003 语法的语法 c99 – 标记不是核心 SQL/1999 语法的语法 p99 – 标记不是完整级 SQL/1999 语法的语法 e92 – 标记不是入门级 SQL/1992 语法的语法 i92 – 标记不是中间级 SQL/1992 语法的语法 f92 – 标记不是完整级 SQL/1992 语法的语法 t – 标记不是完整级 SQL/1992 语法的语法 u – 标记非标准主机变量类型 还提供了下列值,以便与早期版本兼容:e(对于入门级 SQL92)、i(对于中级 SQL92)、f(对于完整 SQL92)以及 w(允许所有受支持的语法)。 -h限制输出的最大行长度。-k包括 SQLCODE 的用户声明。-n行号。-o 目标操作系统规范(WINDOWS、WINNT 或 UNIX)。-q安静模式 - 不输出标题。-r- 生成重入代码。-s 编译器字符串常量的最大长度。-w 将不符合要求的 SQL 语法标记为警告。 的允许值有: c03 – 标记不是核心 SQL/2003 语法的语法 p03 – 标记不是完整级 SQL/2003 语法的语法 c99 – 标记不是核心 SQL/1999 语法的语法 p99 – 标记不是完整级 SQL/1999 语法的语法 e92 – 标记不是入门级 SQL/1992 语法的语法 i92 – 标记不是中间级 SQL/1992 语法的语法 f92 – 标记不是完整级 SQL/1992 语法的语法 t – 标记不是完整级 SQL/1992 语法的语法 u – 标记非标准主机变量类型 -x 将多字节 SQL 字符串更改为转义序列。-z 指定归类序列。要查看建议使用的归类序列的列表,请在命令提示符处输入 iqinit -l。
用法
SQL 预处理器在编译器运行之前处理包含嵌入式 SQL 的 C 或 C++ 程序。iqsqlpp 将输入文件 中的 SQL 语句转换为 C 语言源代码并将其放入 中。含有嵌入式 SQL 的源程序的扩展名通常为 .sqc。缺省的输出文件名为 ,扩展名为 .c。如果 具有 .c 扩展名,则缺省的输出文件扩展名是 .CC。
选项
- -d 理想数据大小。生成减小数据空间大小的代码。数据结构在使用之前执行时会得到重用和初始化。这会增大代码的大小。
- e -此选项将不是 SQL92 指定集合组成部分的任意嵌入式 SQL 标记为错误。 的允许值及其含义如下: e 标记不是入门级 SQL92 语法的语法。i 标记不是中间级 SQL92 语法的语法。f 标记不是完整级 SQL92 语法的语法。t 标记非标准主机变量类型。w 允许所有支持的语法。c99 标记不是核心 SQL/1999 语法的语法。c03 标记不是核心 SQL/2003 语法的语法。p99 标记非完整 SQL/1999 语法的语法。p03 标记非完整 SQL/2003 语法的语法。
- c99 标记不是核心 SQL/1999 语法的语法。
- c03 标记不是核心 SQL/2003 语法的语法。
- p99 标记非完整 SQL/1999 语法的语法。
- p03 标记非完整 SQL/2003 语法的语法。
- -h width 将 iqsqlpp 输出的最大行长度限制为 。续行符为反斜线 (\),且 的最小值为 10。
- -k通知预处理器要编译的程序包括 SQLCODE 的用户声明。
- -n在 C 文件中生成行号信息。该信息包括生成的 C 代码中适当位置处的 <#line> 指令。如果您使用的编译器支持 <#line> 指令,使用此选项可使编译器按照 SQC 文件(带有嵌入式 SQL 的文件)中的行号报错,而不是用 SQL 预处理器生成的 C 文件中的行号报错。此外,<#line> 指令由源代码级调试程序间接使用,以便您可以在查看 SQC 源文件时进行调试。
- -o 指定目标操作系统。此选项必须与程序运行所使用的操作系统相匹配。在您的程序中会生成对特殊符号的引用。此符号在接口库中定义。如果您使用的操作系统规范或库是错误的,则链接程序会检测到一个错误。支持的操作系统有: WINDOWS Microsoft WindowsUNIX 如果您要创建 32 位 UNIX 应用程序,应使用此选项。UNIX64 如果您要创建 64 位 UNIX 应用程序,应使用此选项。
- WINDOWS Microsoft Windows
- UNIX 如果您要创建 32 位 UNIX 应用程序,应使用此选项。
- UNIX64 如果您要创建 64 位 UNIX 应用程序,应使用此选项。
- -s 设置预处理器放入 C 文件的最大大小的字符串。长度大于此值的字符串将通过使用一组字符(<"a"、"b"、"c">等)进行初始化。大多数 C 编译器都对可以处理的字符串文字大小有限制。此选项用于设置其上限。缺省值为 500。
- -w 此选项将不是 SQL92 指定集合组成部分的任意嵌入式 SQL 标记为警告。 的允许值及其含义如下: e 标记不是入门级 SQL92 语法的语法。i 标记不是中间级 SQL92 语法的语法。f 标记不是完整级 SQL92 语法的语法。t 标记非标准主机变量类型。w 允许所有支持的语法。c03 标记不是核心 SQL/2003 语法的语法。c99 标记不是核心 SQL/1999 语法的语法。p99 标记非完整 SQL/1999 语法的语法。p03 标记非完整 SQL/2003 语法的语法。
- c03 标记不是核心 SQL/2003 语法的语法。
- c99 标记不是核心 SQL/1999 语法的语法。
- p99 标记非完整 SQL/1999 语法的语法。
- p03 标记非完整 SQL/2003 语法的语法。
- -x 将多字节字符串更改为转义序列,以便它们可以通过编译器。
- -z 此选项指定归类序列。要查看建议使用的归类序列的列表,请在命令提示符处输入 iqinit -l。 归类序列可帮助预处理器理解在程序源代码中使用的字符,例如,识别出适合在标识符中使用的字母字符。如果您没有指定 -z,则预处理器会尝试根据操作系统以及 IQLANG 和 IQCHARSET 环境变量确定要使用的合理归类。