Помогите пожалуйста, ковырялся пол дня, не понимаю в чем проблема.
Итак:
на компьютере установлена СУБД Oracle x86;
Операционная система Windows x64;
для написания приложений использую Qt 4.8.4.
Компилировал драйвер для работы с Oracle при помощи:
Visual Studio Command Prompt (2010)
прописывал пути к папке libs и include
на выходе получил 4 файла - qsqloci4.dll, qsqloci4.lib, qsqlocid4.dll, qsqlocid4.lib.
Суть проблемы - возникает ошибка чтения памяти при следующем коде:
#include <QSqlDatabase>
int main()
{
QTextStream cout(stdout);
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
if(!db.isValid())
return -1;
db.setDatabaseName("XE");
db.setUserName("UserName");
db.setPassword("Password");
if(!db.open())
{
cout << db.lastError().text();
return -2;
}
db.close();
return 0;
}
Кажется, я всё выполнил по правилам, добавил соединение с необходимым драйвером, установил имя базы, логин и пароль, а затем открыл. Последней строкой закрыл базу.
Ошибка возникает уже не в моем коде, а в qsqldatabase.cpp, в деструкторе
QSqlDatabasePrivate::~QSqlDatabasePrivate()
{
if (driver != shared_null()->driver)
delete driver;
}
при попытке удалить объект driver.
Собственно вопрос в том, что я не так делаю и как эту ошибку исправить?