Получить primaryKey программно с помощью Qt

Я пытаюсь получить primaryKey программно и преобразовать его в имя col. эта функция не работает, как должно быть.

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

Но я не могу найти способ заставить это работать, Это дает мне пустую строку

2

Решение

Вы неправильно используете следующий метод:

QSqlDatabase QSqlDatabase :: database (const QString & connectionName = QLatin1String (defaultConnection), bool open = true) [статические]

Возвращает соединение с базой данных с именем connectionName. Соединение с базой данных должно быть предварительно добавлено с помощью addDatabase (). Если open имеет значение true (по умолчанию) и соединение с базой данных еще не открыто, оно открывается сейчас. Если имя соединения не указано, используется соединение по умолчанию. Если имя_соединения не существует в списке баз данных, возвращается неверное соединение.

Вы должны были написать это:

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

При условии, что вы правильно следовали документации о addDatabase ().

0

Другие решения


По вопросам рекламы [email protected]