测试oracle 数据库与qt连接是否成功
#include <QApplication>
#include <QtSql/QOCIDriver>
#include <QtSql/QSqlDatabase>
#include <qtextcodec.h>
#include <QtSql/qsqlquery.h>
#include <QtSql/QSqlDriver>
#include <QDebug>
#include <qvariant.h>
#include <QtGui/qtableview.h>
#include <QSqlTableModel>
int main(int argc, char *argv[])
{QApplication a(argc, argv);
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); QSqlDatabase orcl = QSqlDatabase::addDatabase("QOCI"); orcl.setHostName("localhost"); orcl.setDatabaseName("orcl"); orcl.setUserName("testdbuser"); orcl.setPassword("123");orcl.setPort(1521);
if(orcl.open())
{qDebug()<<"打开成功";
}
else {qDebug()<<"打开失败";
}
QTableView *tv;
QSqlTableModel *tmd ;
tmd = new QSqlTableModel(0,orcl);
qDebug()<<"1";
tmd ->setTable("sniffertest");tmd->setEditStrategy(QSqlTableModel::OnManualSubmit);
tmd->select();
tv = new QTableView;
tv->setModel(tmd);
tv->show();
QSqlQuery query ("select *from sniffertest"); while (query.next()) {QString country = query.value(0).toString();
printf("%s\n",country.toLocal8Bit().data());}
return a.exec();
}
这个程序可以有效的使用oracle 数据库,并且使用 QSqlTableModel 将数据内容直接导入内存进行事物 存储过程计算
