关闭

QT编译支持Firebird数据库

标签: qtcuznmingwdatabasesql
703人阅读 评论(0) 收藏 举报
分类:

Firebird是典型的嵌入式数据库。所谓嵌入式数据库,简单地说就是不需要单独数据库服务器安装配置,只需要在应用软件中加入客户端接口就可以直接把一个文件当做数据库存取。而Firebird则是出自Borland公司的Interbase数据库,为后者的开源免费版本。笔者最早最早接触的是SQLite,后来由于其某些SQL特性不完善,故而找到了完全支持SQL92标准,支持大部分SQL-99标准功能的Firebird。只是最后也仅用于零散的练手项目,也没有深入研究下去。

QT Manual里已经给出了Interbase驱动器编译方法,这里将其稍作修改支持Firebird。

1、修改ibase工程文件ibase.pro如下:

TARGET  = qsqlibase
HEADERS  = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES  = main.cpp \
    ../../../sql/drivers/ibase/qsql_ibase.cpp
INCLUDEPATH += C:\Firebird\Firebird_2_1\include
LIBS += C:\Firebird\Firebird_2_1\lib\fbclient_ms.lib
unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds
win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
 !win32-borland:LIBS *= -lfbclient_ms
 win32-borland:LIBS  += gds32.lib
}
include(../qsqldriverbase.pri)

2、编译生成QT插件:

命令行下进入%QtDir%\src\plugins\sqldrivers\ibase;

键入qmake ibase.pro回车;

键入make回车。

  注意:(1)、自行确保相关环境变量设置

      (2)、%PATH%添加%Firebird%\bin。(QT资料上要求,未测试是否强制需要) 

3、拷贝embed版中的fbembed.dll、icuin30.dll、icudt30.dll、icuuc30.dll至执行程序目录,并将fbembed.dll更名为fbclient.dll。 

4、连接测试代码如下:

QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE", "Firebird");
 db.setDatabaseName("e:\\cuzn.fdb");
 db.setUserName("SYSDBA");
 db.setPassword("masterkey");
 if (db.open())
 {
  QMessageBox mb;
  mb.setText("ok");
  mb.exec();
  db.close();
 }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4633次
    • 积分:153
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论
  • 离职一年后的反思

    clvzzk: 兄弟,你现在在哪混呢?我有个项目在招募人,有兴趣可以发邮件给我,我在福建zzk888@126.com

  • 离职一年后的反思

    clvzzk: 兄弟,你现在在哪混呢?我有个项目在招募人,有兴趣可以发邮件给我,我在福建zzk888@126.com