2013-02-06 94 views
4

我试着为Firebird构建一个UDF。我能够编译DLL并向数据库注册UDF,但我实际上无法运行它。每到这时,我得到一个错误:如何访问Firebird Embedded中的UDF DLL?

invalid request BLR at offset 63. 
function [FUNCTION_NAME] is not defined. 
module name or entrypoint could not be found. 

我试图在同一文件夹中的应用程序丢弃UDF DLL,并在同一文件夹中的数据库,但无论哪种方式,它似乎永远不会加载它。

当我尝试Google搜索帮助时,我得到的所有结果似乎要么处理通过将它放在您的服务器的UDF文件夹中使它在FB服务器上工作(这不适用,因为我使用FB嵌入式),或者通过编辑配置文件(不适用于我使用的FB嵌入式)在FB服务器上修复权限问题。

那么,如果我使用的是FB Embedded,那么如何确定/配置正确的放置UDF DLL 的地方?

回答

6

我认为默认情况下,Firebird希望UDF DLL位于名为udf的子目录(相对于fbembed.dll文件)中。 您可以使用UdfAccess参数通过firebird.conf文件配置UDF路径。安装随附的conf文件解释了如何使用该参数。另外README_embedded.txt文件包含了如何放置嵌入式服务器文件的很好的解释。