本文主要是介绍Qt对Access数据库进行操作(表、字段和域的读取),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码如下:
#include <QtCore/QCoreApplication>
#include <QTextStream>
#include <QtDebug>
#include <QSqlDatabase>
#include <QStringList>
#include <QSqlError>
#include <QSqlIndex>
#include <QSqlRecord>
#include <QSqlQuery>
#include <QVariant>
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=I:/mycode/ConnectAccess/test.mdb");QString out_str;QTextStream out(stdout);QSqlError err;QSqlRecord record;bool ok = db.open();if(ok){ //success//读数据库中的表QStringList tables;QString tabName,sqlString;tables = db.tables(QSql::Tables);//读表中记录for (int i = 0; i < tables.size(); ++i){tabName = tables.at(i);qDebug()<<tabName;sqlString = "select * from " + tabName;QSqlQuery q(sqlString);//QSqlQuery q("select * from product");QSqlRecord rec = q.record();int fieldCount = rec.count();qDebug() << "Number of columns: " << fieldCount;int i;QString fieldName;for(i=0;i<fieldCount;i++){fieldName = rec.fieldName(i);out << fieldName << "\t";}out<<endl;while(q.next()){for(int i=0;i<fieldCount;i++){out << q.value(i).toString();out << "\t";}out << endl;}}}else{//failout_str="open fail\n";out << out_str <<endl;err = db.lastError();out_str = err.databaseText();out << out_str <<endl;out_str = err.driverText();out << out_str <<endl;}return a.exec();
}
这篇关于Qt对Access数据库进行操作(表、字段和域的读取)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!