根据上篇翻译的文档按部就班的进行测试,结果可以正常的连接到FireBird。这里有几个地方需要注意:
1.首先安装好QT、VS,以及FireBird后,编译iBase插件。设置好包含路径后可以顺利的编译。
2.建立测试程序后发现没有加载iBase驱动,这是因为程序找不到fbclient.dll所致,将其拷贝到exe文件目录下
3.连接数据库设置Firebird数据库路径时注意反斜线需要转义。
注意以上三点就可以轻松完成测试了。
代码如下:
#include "QSqlDatabase.h"
#include "QMessageBox.h"
#include <QSqlError>
#include <QSqlQuery>
QStringList a = QSqlDatabase::drivers();
QMessageBox::information(NULL, "", a.join("_"));
QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
db.setHostName("localhost");
db.setUserName("sysdba");
db.setPassword("masterkey");
db.setDatabaseName("D:\\FBDatabase\\Test.fdb");
if(!db.isValid())
{
QString lastError = db.lastError().text();
QMessageBox::information(NULL, "", lastError);
}
if(!db.open())
{
QMessageBox::information(NULL, "","Error");
}
QSqlQuery qry = QSqlQuery("Select Count(*) From PERSON");
qry.exec();
qry.next();
QMessageBox::information(NULL, "", qry.value(0).toString());