用Qt编程获取primaryKey

Get primaryKey programmatically with Qt

本文关键字:primaryKey 获取 编程 Qt      更新时间:2023-10-16

我尝试以编程方式获得primaryKey并将其转换为colname。这个函数不能正常工作。

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

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

您误用了以下方法:

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

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

你应该这样写:

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

如果您正确地遵循了addDatabase()的文档。