Плагин для QGIS и библиотека QSql
Добавлено: 09 фев 2011, 21:05
Доброго всем времени суток!
Возникла у меня такая задача: нужно в плагине для QGIS организовать подключение к БД PostgreSQL.
Пытаюсь это сделать с помощью QSqlDatabase. Использую драйвер QODBC.
Список доступных драйверов (результат QSqlDatabase::drivers()): QPSQL7, QPSQL, QODBC3, QODBC.
Вот код, который выполняет подключение к БД:
Всё срабатывает. db.open() возвращает true, db.isValid() - тоже.
Пытаюсь выполнить запрос с помощью QSqlQuery::exec() - не проходит. Текст ошибки из QSqlQuery::lastError() - Driver not loaded Driver not loaded. Собственно, вопрос в том, как сделать так, чтобы драйвер загрузился и запрос, соответственно, прошёл?
Заранее благодарю за помощь.
P.S. Уже гуглил
Решение, которое нашёл - положить dll от драйвера в папку, где расположено запускаемое приложение, т.е. мне такое решение не подходит, т.к. запускается плагин, представленный в виде dll.
Возникла у меня такая задача: нужно в плагине для QGIS организовать подключение к БД PostgreSQL.
Пытаюсь это сделать с помощью QSqlDatabase. Использую драйвер QODBC.
Список доступных драйверов (результат QSqlDatabase::drivers()): QPSQL7, QPSQL, QODBC3, QODBC.
Вот код, который выполняет подключение к БД:
Код: Выделить всё
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("PostgreSQl");
db.setUserName("postgres");
db.setPassword("ehfk");
bool db.open();
Пытаюсь выполнить запрос с помощью QSqlQuery::exec() - не проходит. Текст ошибки из QSqlQuery::lastError() - Driver not loaded Driver not loaded. Собственно, вопрос в том, как сделать так, чтобы драйвер загрузился и запрос, соответственно, прошёл?
Заранее благодарю за помощь.
P.S. Уже гуглил
