Я пытаюсь получить primaryKey программно и преобразовать его в имя col. эта функция не работает, как должно быть.
QString getPrimaryFiled( const QString &tableName )
{
QSqlDatabase m_SqlDataBase = QSqlDatabase::database(StaticConnection::getDatabaseConnectionName());
return m_SqlDataBase.primaryIndex( tableName ).name();
}
Но я не могу найти способ заставить это работать, Это дает мне пустую строку
Вы неправильно используете следующий метод:
Возвращает соединение с базой данных с именем connectionName. Соединение с базой данных должно быть предварительно добавлено с помощью addDatabase (). Если open имеет значение true (по умолчанию) и соединение с базой данных еще не открыто, оно открывается сейчас. Если имя соединения не указано, используется соединение по умолчанию. Если имя_соединения не существует в списке баз данных, возвращается неверное соединение.
Вы должны были написать это:
QSqlDatabase m_SqlDataBase = QSqlDatabase::database( StaticConnection::getDatabaseConnectionName() );
При условии, что вы правильно следовали документации о addDatabase ().