Qt之sqlite:获取数据库中的表名和表结构(源码共享)
发布时间:2020-12-12 19:28:06 所属栏目:百科 来源:网络整理
导读:需求:获取指定数据库的结构。包括数据库中的所有表和表的结构(即表名,字段名,字段类型等信息) 平台:vs2013+Qt 数据库驱动:sqlite 关键之处:PRAGMA table_info( strTableNmae ) 源码分享: #include QtCore/QCoreApplication#include QSqlDatabase#in
需求:获取指定数据库的结构。包括数据库中的所有表和表的结构(即表名,字段名,字段类型等信息) 平台:vs2013+Qt 数据库驱动:sqlite 关键之处:PRAGMA table_info( strTableNmae ) 源码分享: #include <QtCore/QCoreApplication> #include <QSqlDatabase> #include <QSql> #include <QString> #include <QStringList> #include <QDebug> #include <QStringListIterator> #include <QSqlQuery> #include <QSqlError> bool outPutTableInfo(QString tableNmae); bool outputDatabaseInfo(QSqlDatabase databaseName); int main(int argc,char *argv[]) { QCoreApplication a(argc,argv); QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE"); database.setDatabaseName("cashregistersystem.db"); outputDatabaseInfo(database); return a.exec(); } bool outputDatabaseInfo(QSqlDatabase database) { if (database.open()) { qDebug() << "Open database success!"; QStringList tables = database.tables(); //获取数据库中的表 qDebug() << QString::fromLocal8Bit("表的个数: %1").arg(tables.count()); //打印表的个数 QStringListIterator itr(tables); while (itr.hasNext()) { QString tableNmae = itr.next().toLocal8Bit(); qDebug() << QString::fromLocal8Bit("表名:")+ tableNmae; outPutTableInfo(tableNmae); } } else { qDebug() << "Open database failed!"; return false; } return true; } bool outPutTableInfo(QString tabNmae) { QSqlQuery query; QString strTableNmae = tabNmae; QString str = "PRAGMA table_info(" + strTableNmae + ")"; query.prepare(str); if (query.exec()) { while (query.next()) { qDebug() << QString(QString::fromLocal8Bit("字段数:%1 字段名:%2 字段类型:%3")).arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString()); } } else { qDebug() << query.lastError(); return false; } return true; } 运行截图:
Qt之操作数据库(SQLite)实例:http://blog.csdn.net/rl529014/article/details/52127173
C++编程技术交流群:302558294(学习是一个互相帮助、不断进步的过程;不论你是大牛还是菜鸟,都期待你的加入)(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |