ecux — 嵌入式SQL C预处理器
ecux
[option
...] file
...
ecux
是用于C程序的嵌入式SQL预处理器。它通过将SQL调用替换为特殊函数调用把带有嵌入式SQL语句的C程序转换为普通C代码。输出文件可以被任何C编译器工具链处理。
ecux
将把命令行中给出的每一个输入文件转换为相应的 C 输出文件。
输入文件更适宜于使用扩展名.uxc
。
该扩展名将被替换为.c
来决定输出文件名。
输出文件名也可以使用-o
选项覆盖。
ecux
接受下列命令行参数:
-c
自动从SQL代码生成确定的C代码。当前,仅对EXEC SQL TYPE
起效。
-C mode
设置一个兼容性模式。mode
可以是INFORMIX
或INFORMIX_SE
。
-D symbol
定义一个C预处理器符号。
-h
分析头文件,这个选项包含选项“-c”。
-i
分析系统include文件。
-I directory
指定一个额外的包括路径,用来寻找通过EXEC SQL INCLUDE
包括的文件。默认值是.
(当前目录)、/usr/local/include
、在编译时定义的UXDB“include”
包括目录(默认:/home/uxdb/uxdbinstall/dbsql/include
)以及/usr/include
。
-o filename
指定ecux
应该将它的所有输出写到给定的filename
。
-r option
选择运行时行为。option
可以是下列之一:
no_indicator
不使用指示器而使用特殊值来表示空值。
prepare
在使用所有语句之前准备它们。libecux将保持一个预备语句的缓冲并当语句再被执行时重用该语句。如果缓冲满了,libecux将释放最少使用的语句。
questionmarks
为兼容性原因允许使用问号作为占位符。
-regression
在回归测试模式下运行。
-t
打开事务的自动提交。在这种模式下,每一个SQL命令会被自动提交,除非它位于一个显式事务块中。在默认模式中,命令只有当EXEC SQL COMMIT
被发出时才被提交。
-V
--version
打印ecux版本并退出。
-?
--help
显示关于ecux命令行参数的帮助并退出。
在编译预处理好的C代码文件时,编译器需要能够找到UXDB包括目录中的ECUX头文件。因此,在调用编译器时,你可能必须使用-I
选项(例如,-I/home/uxdb/uxdbinstall/dbsql/include
)。
使用带有嵌入式SQL的C代码的程序必须被链接到libecux
库,例如使用链接器选项-L/home/uxdb/uxdbinstall/dbsql/lib -lecux
。
可以使用ux_config找到适合安装的目录。
如果你有一个名为prog1.uxc
的嵌入式SQL C源文件,你可以使用下列命令序列创建一个可执行程序:
ecux prog1.uxc cc -I /home/uxdb/uxdbinstall/dbsql/include -c prog1.c cc -o prog1 prog1.o -L /home/uxdb/uxdbinstall/dbsql/lib -lecux