1

有没有人有使用 ESQL/C 为 INFORMIX-SQL 开发的经验,比如在“Perform”屏幕生成器和“ACE”报告编写器中调用 C 函数?

我有没有 ESQL/C 的 ISQL。我尝试编译一个执行屏幕,在说明部分中我放置了“ON BEGINNING CALL userfunc() END”,虽然我没有 ESQL/C,但执行屏幕成功编译且没有错误!.. 显然,编译器没有即使没有 ESQL/C 或 C 程序链接,也不要拒绝 C 调用。

4

1 回答 1

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 函数构建到自定义函数中。

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

于 2010-03-07T23:55:54.617 回答