给定:使用.fdb文件 的 .exe 程序, 并且在该程序所在的文件夹中有 firebird 驱动程序(.dll 文件)
任务:从 .fdb 文件中获取数据
我安装了火鸟服务器。连接到 .fdb 文件。收到数据,一切正常。
此外,我在那里找到了一个我想要执行的程序。
但是在执行过程时,我得到一个错误:
函数 Z 未定义;找不到模块名称或入口点;解析过程 ********** 的 BLR 时出错 [SQLState:HY000,ISC 错误代码:335544343] 错误代码:335544343
我假设在 .exe 文件中执行此过程时,有一些函数Z
当我通过我的本地 firebird 服务器连接到.fdb文件时,没有Z函数。
问题:这个Z函数在哪里可以直接在.exe文件或一些.dll文件中描述?
以及如何连接到 .fdb 文件以便执行该过程?
过程主体的源文本被覆盖。:(
回答: 外部/用户函数,它们也是用户定义函数 (UDF),在位于服务器旁边的 DLL 中进行了描述。您需要查看服务器版本的设置以获取更多详细信息。
添加:
在 Firebird 1.0 的日子里,由于内置函数的功能非常有限,爱好者们开发了rfunc库,其中包含了大量用于 Firebird 的 UDF 函数。这个库还有一个Z()函数
您可以通过查询检查这是否真的存在:
如果
RDB$ENTRYPOINT = 'fn_z'是这样,那么很可能是她。RDB$MODULE_NAME包含不带扩展名的 dll 名称。