6

首先,我不是 100% 确定我使用的是 OSX 下的嵌入式 firebird 客户端。我从 firebirdsql.org 下载的安装文件表明它包含 Classic、Superclassic 和 Embedded。与 Windows 版本不同,包中似乎没有专用的嵌入式库文件。我假设libfbclient.dyliblibgds.dylib为我的使用而重命名)可以用作嵌入式。如果我错了,那么我想这就是问题所在。有人能告诉我在哪里得到嵌入的 dylib 文件吗?

如果 libfbclient.dylib 也用于嵌入式使用,那么我的问题仍然存在。当我第一次尝试创建数据库文件时,它失败并显示“权限被拒绝”。我正在尝试在用户文档文件夹中创建此文件。我正在使用 Delphi 中的 Interbase Express 组件进行连接。这在 windows 环境下为我服务了多年。

完整的错误信息是...
Exception class EIBInterBaseError with message 'I/O error during "open O_CREAT" operation for file '/Users/martin/Documents/LightFactoryShows/default.fdb" Error while trying to create file Permission denied'

4

1 回答 1

2

解决了!多次重读此文档后,我终于明白了: http ://www.ibphoenix.com/resources/documents/how_to/doc_103

OSX 下的嵌入式库与 windows 中的 exe 相同。在 /Library/Framworks/Firebird.framework 文件夹中有一个名为“Firebird”的可执行文件。我不明白的关键文本是“将 Firebird 文件重命名为 libfbembed.dylib”。我的 Windows 体验让我大吃一惊,因为在 Windows 中,您永远不会将 .exe 重命名为 .dll。我不知道它是否可能在 Windows 中,但我从来没有关注过它。

我需要做一些更琐碎的事情,这里是完整的说明。

1) 将“Firebird”{executable} 链接到 /usr/local/lib/libgds.dylib

ln -s /Library/Frameworks/Firebird.framework/Firebird /usr/local/lib/libgds.dylib

2) 链接 firebird.msg 文件,使其出现在 /usr/local/lib 文件夹中

ln -s /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/firebird.msg /usr/local/lib/firebird.msg

3) 将“security2.fdb”复制到/usr/local/lib 文件夹并更改其权限以授予写入权限。无法链接到该文件。

cp /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/security2.fdb /usr/local/lib
chmod 777 /usr/local/lib/security2.fdb.
于 2013-04-05T01:43:10.610 回答