任何人都有使用ESQL / C开发INFORMIX-SQL的经验吗?

时间:2010-03-07 18:51:19

标签: informix embedded-sql

有没有人有使用ESQL / C开发INFORMIX-SQL的经验,就像在“执行”屏幕生成器和“ACE”报告编写器中调用C函数一样?

我有没有ESQL / C的ISQL。我尝试编译一个执行屏幕,在指令部分我把“ON BEGINNING CALL userfunc()END”,虽然我没有 ESQL / C,Perform屏幕成功编译没有错误!显然,即使没有链接ESQL / C或C程序,编译器也没有拒绝C调用。

1 个答案:

答案 0 :(得分:1)

是的,我对他们有一些经验 - 现在是昏暗和遥远。

表单编译器(sformbld)必须接受您所做的任何函数调用 - 它无法判断它在运行时是否有效。它不知道运行表单所需的(自定义)执行运行程序可用的功能。

类似地,报告编译器(saceprep)必须接受您所做的任何函数调用,因为它无法在运行时判断它是否有效。

要运行包含除内置函数之外的函数调用的表单,必须创建自定义运行器(而不是使用标准sperform)。在Unix上执行此操作的脚本是'cperf';它将采用您提供的函数定义并构建可以调用这些函数的自定义运行器。然后,您可以使用自定义运行程序运行使用这些功能的报表。如果您的自定义代码不执行任何ESQL / C调用,则您甚至不需要在机器上使用ESQL / C; ISQL产品就足够了。

并行情况适用于报告;你不能使用标准的sacego,但必须用'cace'创建一个合适的自定义跑步者。

现在,在遥远的黑暗时代(比如1990年之前),你没有得到自定义ACE和使用ISQL执行东西 - 你必须购买ISQL和ESQL / C.但是自从ISQL版本4.00发布(AFAICR,1988或1989)以来,自定义运行器和库都提供了ISQL,您不再需要购买ESQL / C,除非您想在自定义函数中构建ESQL / C函数。 / p>

请注意,您不创建自定义编译器;因此,编译器无法判断哪些函数可用。