程序示例
连接数据库
#include <QCoreApplication>
#include <QtDebug>
#include <QSqlDatabase>
const QString host = "127.0.0.1";
const int port = 5678;
const QString dbName = "unvdb";
const QString user = "udb";
const QString password = "123456";
int main()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QUNVDB");
db.setHostName(host);
db.setDatabaseName(dbName);
db.setUserName(user);
db.setPassword(password);
db.setPort(port);
db.setConnectOptions("connect_timeout=2");
db.open();
if (!db.isOpen()) {
qDebug() << db.lastError();
}
db.close();
}
QT驱动同样支持SSL模式连接UnvDB数据库
获取结果集
#include <QCoreApplication>
#include <QtDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
const QString host ="127.0.0.1";
const int port = 5678;
const QString dbName = "unvdb";
const QString user = "udb";
const QString password = "123456";
int main()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QUNVDB");
db.setHostName(host);
db.setDatabaseName(dbName);
db.setUserName(user);
db.setPassword(password);
db.setPort(port);
db.setConnectOptions("connect_timeout=2");
db.open();
if (!db.isOpen()) {
qDebug() << db.lastError();
}
QSqlQuery q(db);
q.exec("create table TEST(id integer, name TEXT)");
q.exec("INSERT INTO TEST(id, name) VALUES(1, 'John')")
q.exec("select id from TEST");
while (q.next()) {
qDebug() << q.value(0);
}
q.close();
db.close();
}
批量DML
bool testBatchDML(QSqlDatabase& db)
{
QSqlQuery sql_query(db);
sql_query.exec("drop table if exists Persons");
sql_query.exec(QObject::tr("create table Persons(person_id int primary key , sex varchar(255) , age int, hobbies varchar(255) , birthday date)"));
sql_query.prepare(QObject::tr("insert into Persons values(?,?,?,?, ?)"));
QVariantList var_id_list , var_sex_list , var_age_list , var_hobbies_list , var_birthday_list;
var_id_list << 1 << 2 << 0 << 3 << 4 << 5;
var_sex_list << QObject::tr("man") << QObject::tr("woman") << QObject::tr("woman") << QObject::tr("man") << QObject::tr("man") << QObject::tr("woman");
var_age_list << 21 << 23 << 20 << 53 << 14 << 45;
var_hobbies_list << QObject::tr("swim") << QObject::tr("read") << QObject::tr("swim") << QObject::tr("read") << QObject::tr("play") << QObject::tr("football");
var_birthday_list << QObject::tr("1995-04-04") << QObject::tr("1925-12-14") << QObject::tr("2005-02-04") << QObject::tr("2014-02-11") << QObject::tr("1995-04-04") <<QObject::tr("2007-04-04");
sql_query.addBindValue(var_id_list);
sql_query.addBindValue(var_sex_list);
sql_query.addBindValue(var_age_list);
sql_query.addBindValue(var_hobbies_list);
sql_query.addBindValue(var_birthday_list);
if (!sql_query.execBatch())
qDebug()<<sql_query.lastError();
return true;
}