Qt/SQL - 从没有记录的表中获取列类型和名称

Tri*_*hel 4 c++ sql qt types

使用时Qt,我必须连接到数据库并从表中列出列的类型和名称.我有两个限制:

1数据库类型不能是一个问题(这有上下工夫PostgreSQL,SQL Server,MySQL,...)

2当我在互联网上查看时,我找到了可行的解决方案,但只有在表中有一个或多个reocrd时才会有效.我必须将列的类型和名称带或不带记录到此数据库中.

我在互联网上搜索了很多,但我找不到任何解决方案.

我正在寻找答案Qt/C++或使用可以做到这一点的查询.

感谢帮助 !

Ham*_*att 14

QSqlDriver::record()获取一个表名并返回一个QSqlRecord,您可以使用它来获取字段QSqlRecord::field().

那么,给定一个QSqlDatabasedb,

  1. 获取驱动程序db.driver(),
  2. 获取表列表db.tables(),
  3. QSqlRecorddriver->record(tableName)和获取每个表的a
  4. 获取字段数record.count()以及名称和类型record.field(x)

  • 注意:QSqlDatabase 还有一个 [record](http://doc.qt.io/qt-5/qsqldatabase.html#record) 函数,使用它可以简化你的解决方案(当然还有 QSqlDatabase::tables) (2认同)