有没有人有使用ESQL/C for INFORMIX-SQL进行开发的经验,就像在“执行”屏幕生成器和"ACE“报告编写器中调用C函数一样?
我在没有ESQL/C的情况下使用了ISQL。我尝试编译了一个执行屏幕,在指令部分我输入了"ON BEGINNING userfunc() END“,虽然我没有ESQL/C,但执行屏幕编译成功,没有错误!..显然,即使没有链接ESQL/C或C程序,编译器也没有拒绝C调用。
发布于 2010-03-08 07:55:55
是的,我对它们有一些经验--现在是模糊而遥远的。
表单编译器(sformbld)必须接受您进行的任何函数调用-它不能判断它在运行时是否有效。它不知道运行窗体所需的(自定义)执行运行器可以使用哪些函数。
类似地,报表编译器(saceprep)必须接受您进行的任何函数调用,因为它不能判断它在运行时是否有效。
要运行包含内置函数以外的函数调用的窗体,必须创建自定义运行器(而不是使用标准的sperform)。在Unix上执行此操作的脚本是'cperf';它将接受您提供的函数定义,并构建一个可以调用这些函数的自定义运行器。然后,您可以使用自定义运行器运行使用这些函数的报告。如果您的自定义代码不执行任何ESQL/C调用,那么您甚至不需要在机器上安装ESQL/C;ISQL产品就足够了。
类似的情况也适用于报表;您不能使用标准的sacego,但必须使用“cace”创建适当的自定义运行器。
现在,在遥远的黑暗时代(比如1990年之前),你没有定制的ACE和使用ISQL执行的东西--你必须购买ISQL和ESQL/C。但是自从ISQL版本4.00发布以来( 1988或1989年的AFAICR),自定义运行器和库随ISQL一起提供,你不再需要购买ESQL/C,除非你想在你的定制函数中构建ESQL/C函数。
请注意,您没有创建自定义编译器;因此,编译器无法判断哪些函数可用。
https://stackoverflow.com/questions/2397469
复制相似问题