-
环境配置 -
安装Qt,如果系统自带Qt,可以跳过这一步骤。 -
将对应版本的libqkingbase.so放入Qt安装路径的plugins/sqldrivers目录下,并将该库文件依赖的libkci加入系统环境变量中。 -
使用ldd查看这些库文件的依赖,如下图所示,没有出现“not found”即可。 -
编译运行 2.1. 使用Qt Creator -
在Qt Creator中创建测试项目。 -
点击左侧“项目”选项卡中的“构建环境”,可以查看当前使用的Qt库路径,确认版本是否匹配。 -
编译并运行。 2.2. 命令行编译 -
确认qmake和moc是否可用,若不可用,将Qt安装路径的bin目录加入系统环境变量中,可以使用“-v”参数确认版本是否匹配。 -
使用qmake命令编译,执行“qmake test.pro”,待生成结束后,会在当前目录生成MakeFile文件,执行“make”即可生成最终的二进制执行文件。 -
测试代码 //test.pro QT -= gui QT += core sql
CONFIG += console CONFIG -= app_bundle
The following define makes your compiler emit warnings if you use
any Qt feature that has been marked deprecated (the exact warnings
depend on your compiler). Please consult the documentation of the
deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
You can also make your code fail to compile if it uses deprecated APIs.
In order to do so, uncomment the following line.
You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += main.cpp
Default rules for deployment.
qnx: target.path = /tmp/
T
A
R
G
E
T
/
b
i
n
e
l
s
e
:
u
n
i
x
:
!
a
n
d
r
o
i
d
:
t
a
r
g
e
t
.
p
a
t
h
=
/
o
p
t
/
{TARGET}/bin else: unix:!android: target.path = /opt/
TARGET/binelse:unix:!android:target.path=/opt/{TARGET}/bin !isEmpty(target.path): INSTALLS += target
//main.cpp #include #include #include #include //#include
int main(int argc, char *argv[]) { //QApplication::addLibraryPath("./plugins");
qDebug()<<QSqlDatabase::drivers()<<QSqlDatabase::isDriverAvailable("QKINGBASE");
QSqlDatabase db = QSqlDatabase::addDatabase("QKINGBASE");
db.setHostName("192.168.28.194");
db.setDatabaseName("TEST");
db.setUserName("SYSTEM");
db.setPassword("123456");
db.setPort(54323);
//db.setConnectOptions();
db.open();
if(!db.isOpen())
{
qDebug()<<db.lastError();
//return -1;
}
qDebug()<<db.isOpen();
db.close();
return 0;
} 4. FAQ
- Q:使用测试代码运行时,报错信息为:“QSqlDatabase: QKINGBASE driver not loaded
QSqlDatabase: available drivers:”,怎么解决? A:说明Qt并未找到qkingbase的驱动,驱动文件放置路径有误或者驱动有依赖未找到。 - Q:将Qt驱动放入qmake对应的sqldrivers目录了,依赖也解决了,但是报错信息依然是“QSqlDatabase: QKINGBASE driver not loaded”,怎么解决?
A:可以使用QApplication重定位库查找路径。在main.cpp文件中添加“#include ”,main函数中添加“QApplication::addLibraryPath("./plugins");”。之后把Qt驱动放入”./plugins/sqldrivers”目录中。 注意:使用QApplication时,需要引入QtGui模块,在test.pro文件中修改为“QT += gui”,之后重新编译。 - Q:提供的Qt驱动版本和安装的版本不匹配可以使用吗?
A:这个需要视具体情况而定。通常主版本号一致即可,如目前提供的驱动版本为Qt4.8.7,安装的Qt版本为Qt4.6.2,通常是不会产生问题的;但安装的是Qt5.5.1,主版本号不匹配,一般来说是无法使用的,需要替换为Qt5版本的驱动。
|