预处理包含嵌入式 SQL (ESQL) 的 C/C++ 程序,这样,可以在运行编译器之前生成该程序所需的代码。为保持完整性,下表描述了整个选项集,但是 UltraLite 的相关选项只有 -eu 和 -wu。
sqlpp -u [ options ] esql-filename [ output-filename ]
选项 | 说明 |
---|---|
-d | 生成减小数据空间大小但增大代码大小的代码。数据结构在使用之前执行时会得到重用和初始化。 |
-e flag |
此选项将任何未包含在指定标准中的静态嵌入式 SQL 标记为错误。level 值表示要使用的标准。例如, level 的允许值有:
为了与以前的 SQL Anywhere 版本兼容,也可指定 e、I 和 f(分别对应 e92、i92 和 f92)。 |
-h width | 在 .c 文件中,将 sqlpp 输出的拆分行的最大长度限制为 width。在拆分行的末尾添加反斜线字符,这样 C 编译器就可以将这些拆分行作为一个连续的行进行分析。缺省值为无最大行长度(缺省情况下不拆分输出行)。 |
-k | 通知预处理器要编译的程序包括 SQLCODE 的用户声明。 |
-n |
在生成的代码的相应位置上使用 此选项用于报告源代码错误,以及调试 esql-filename 文件(而不是 output-filename 文件)中这些行号处的源代码。 |
-o O/S spec | 不适用于 UltraLite。 |
-q | 将实用程序设置为在安静模式下运行。取消信息性标题、版本号和状态消息。但是,仍然会显示错误消息。 |
-r | 不适用于 UltraLite。 |
-s string-length | 设置预处理器要放入 C 文件的最大大小字符串。对于长度大于此值的字符串,将使用一组字符('a'、'b'、'c' 等)对其进行初始化。大多数 C 编译器都对可以处理的字符串大小有限制。此选项用于设置其上限。缺省值是 500。 |
-u | UltraLite 必需的。生成 UltraLite 数据库特有的必需输出。 |
-w level |
将不符合要求的 SQL 语法标记为警告。level 值表示要使用的标准。例如, level 的允许值有:
为了与以前的 SQL Anywhere 版本兼容,也可指定 e、I 和 f(分别对应 e92、i92 和 f92)。 |
-x | 将多字节字符串更改为转义序列,以便它们可以通过编译器。 |
-z collation-sequence | 指定归类序列。 |
此预处理器将 input-file 中的 SQL 语句转换为 C/C++,并将结果写入 output-filename。含有嵌入式 SQL 的源文件的常规扩展名是 sqc。缺省的 output-filename 为基本名 esql-filename 加上扩展名 c。但是,如果 esql-filename 已经有 .c 扩展名,则缺省的输出扩展名是 .cc。
归类序列用于帮助预处理器理解程序的源代码所使用的字符。例如,标识适用于标识符的字母字符。在 UltraLite 中,归类包括一个代码页加上一个排序顺序。如果没有指定 -z,则预处理器会尝试根据操作系统确定要使用的合理归类。
要查看支持的归类(和相应代码页)的列表,请运行命令 ulinit -Z。
SQL 预处理器 (sqlpp) 可在编译时在嵌入式 SQL 应用程序中标记静态 SQL 语句。此特性在开发 UltraLite 应用程序时对于验证 SQL 语句的 UltraLite 兼容性特别有用。使用 -e 和/或 -w 选项,可以测试 SQL Anywhere 与 UltraLite 应用程序的 SQL 兼容性。有关 SQL Flagger 的概述,请参见使用 SQL Flagger 测试 SQL 遵从性。
以下命令在安静模式下为 UltraLite 应用程序预处理 srcfile.sqc 嵌入式 SQL 文件。
sqlpp -u -q MyEsqlFile.sqc |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |