代码之家  ›  专栏  ›  技术社区  ›  Joe R.

有没有人有过为Informix-SQL开发ESQL/C的经验?

  •  1
  • Joe R.  · 技术社区  · 15 年前

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

    我有没有esql/c的isql。我尝试编译一个执行屏幕,在说明部分我放了“on beging call userfunc()end”,尽管我没有 ESQL/C,执行屏幕编译成功,没有错误!…显然,即使没有ESQL/C或C程序链接,编译器也没有拒绝C调用。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Jonathan Leffler    15 年前

    是的,我对它们有一些经验-现在,模糊和遥远。

    表单编译器(sformold)必须接受您所做的任何函数调用-它无法确定它在运行时是否有效。它不知道(自定义)执行运行程序可以使用哪些函数来运行表单。

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

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

    并行情况适用于报表;您不能使用标准sacego,但必须使用“cace”创建适当的自定义运行程序。

    现在,在遥远的黑暗时代(比如1990年以前),你没有得到定制的ace,也没有用isql来执行任务——你必须购买isql和esql/c。但是自从isql 4.00版本发布以来(afairc,1988或1989年),定制的运行程序和库都提供了isql,你不再需要购买esql/c,除非你想构建esql/c函数。到您的自定义函数中。

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

    推荐文章