2

我尝试以编程方式获取 primaryKey 并将其转换为 col 名称。这个功能不能像桅杆那样工作。

QString getPrimaryFiled( const QString &tableName )
{
    QSqlDatabase m_SqlDataBase = QSqlDatabase::database(StaticConnection::getDatabaseConnectionName());
    return m_SqlDataBase.primaryIndex( tableName ).name();
}

但我找不到让它工作的方法,它给了我空白字符串

4

1 回答 1

0

您正在滥用以下方法:

QSqlDatabase QSqlDatabase::database(const QString & connectionName = QLatin1String( defaultConnection ), bool open = true) [静态]

返回名为 connectionName 的数据库连接。数据库连接必须先前已使用 addDatabase() 添加。如果 open 为 true(默认值)并且数据库连接尚未打开,则现在打开它。如果未指定 connectionName,则使用默认连接。如果数据库列表中不存在 connectionName,则返回无效连接。

你应该这样写:

QSqlDatabase m_SqlDataBase = QSqlDatabase::database( StaticConnection::getDatabaseConnectionName() );

前提是您正确遵循有关addDatabase()的文档。

于 2014-06-03T14:34:00.480 回答