2

プログラムで primaryKey を取得し、それを列名に変換しようとしています。この機能は正常に機能しません。

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 に答える