esql 命令可以自动调用 GBase 8s ESQL/C 过滤器 esqlmf 来处理非 ASCII 字符。
图: 从非 ASCII 源程序创建 ESQL/C 可执行程序
当将 ESQLMF 设置为 1 时,esql 自动在 GBase 8s ESQL/C 预处理器之后和 C 编译器之前调用 esqlmf。
设置 CC8BITLEVEL 以指示 C 编译器处理非 ASCII 字符的能力。
CC8BITLEVEL | esqlmf 操作 |
---|---|
0 | 将文字字符串和注释中的所有非 ASCII 字符转换为八进制常量。 |
1 | 将文字字符串(但不是注释)中的非 ASCII 字符转换成八进制常量。 |
2 | 将文字字符串中的非 ASCII 字符转换成八进制常量,以确保非 ASCII 字符中的所有字节均设置了第 8 位。 |
3 | 不调用 esqlmf。 |
在 esqlmf 开始过滤之前,它创建具有 .c_ 文件扩展名的 C 源文件 (source.c) 的副本 (source.c_)。
如果未设置 CC8BITLEVEL,esql 即会转换文字字符串和注释中的非 ASCII 字符。您可以修改 CC8BITLEVEL 的值以反映 C 编译器的能力。