首先,我不能 100% 确定我在 OSX 下使用嵌入式 firebird 客户端。我从 firebirdsql.org 下载的安装文件指出它包含 Classic、Superclassic 和 Embedded。与 Windows 版本不同,包中似乎没有专用的嵌入式库文件。 我假设
libfbclient.dylib
(为我的使用而重命名为 libgds.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'
解决了!经过多次阅读该文档,我终于明白了: MacOSX 上的嵌入式 Firebird。
OSX下的嵌入式库与Windows中的exe相同。 在 /Library/Framworks/Firebird.framework 文件夹中有一个名为“Firebird”的可执行文件。我不明白的关键文本是“将 Firebird 文件重命名为 libfbembed.dylib”。我的 Windows 体验让我很困惑,因为在 Windows 中你永远不会将 .exe 重命名为 .dll。我不知道在 Windows 中是否可行,但我从未听说过。我还需要做一些琐碎的事情,所以这里是完整的说明。
ln -s /Library/Frameworks/Firebird.framework/Firebird /usr/local/lib/libgds.dylib
ln -s /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/firebird.msg /usr/local/lib/firebird.msg
cp /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/security2.fdb /usr/local/lib
chmod 777 /usr/local/lib/security2.fdb