jac*_*hab 5 c++ database firebird
我想问一下那些有Firebird和IBPP经验的人(特别是后者).我找到了很多关于Firebird的正面帖子,但我有一个问题需要决定IBPP.界面本身干净简洁,但似乎项目没有太多活动(可能因为它非常稳定).
谢谢.
除了米兰提到的几点之外:
目前无法在连接到不同数据库时使用多个客户端库,甚至无法指定将使用哪个客户端库。所探测的客户端库位置存在特定的硬编码序列,找到的第一个位置将用于所有连接。很长一段时间以来,人们一直在暗示 IBPP 版本会改变这一点,但尚未到来。SVNtrunk包含一些代码来处理这个问题,但我想说这最多只是 alpha 质量。
所有这些仅适用于 Windows,因为在所有其他平台上,Firebird 客户端库无论如何都不会在运行时加载。
该库不是线程安全的。这在大多数情况下并不重要,因为无论如何您都应该让每个线程拥有自己的连接、事务和其他分类对象。但 IBPP 使用自己的智能指针实现,它既不是完全异常安全的,也不是线程安全的。尽管如此,只要您从主线程初始化库(在创建任何其他线程之前)并在同一线程中创建和销毁 IBPP 对象(因此绝对不与其他线程共享对象!),在多个线程中使用 IBPP 应该可以工作美好的。
如果您可以接受上述几点(它们可能对您来说根本不重要),那么它肯定可以用于生产使用。你总是可以改变你遇到的事情,就像我们为 FlameRobin 所做的那样。