Название: Ошибка открытия БД MySQL Отправлено: Danila_Bagrofff от Октябрь 25, 2010, 13:07 ОС: Windows 7
Компилер: MinGW Lib: Qt-4.7.0 (Сборка Qt-SDK-2010.5) + QtСreator соответсвенно. Проблема следующая. Либу собрал. Все норм. Драйвер вроде находит, если работать статически, все лежит, где надо. Начинаю работать с БД. Пробую так. В h.файле: Код: QSqlDatabase *dbArchive ; В cpp: Код: dbArchive = new QSqlDatabase(); Когда работаю вот так через указатель, lastError говорит Цитировать Driver not Load .Если работаю так: Код: QSqlDatabase dbArchive = QSqlDatabase::addDatabase("QMYSQL"); Пришлось сделать так, чтоб скушался драйвер: Код: dbArchive = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL")); В чем проблема, и как правильно надо работать тогда?.. Как заставить работать с БД через указатель? Название: Re: Ошибка открытия БД MySQL Отправлено: kibsoft от Октябрь 25, 2010, 13:22 А зачем вам нужно передавать указатель на этот объект?
Вы всегда можете его получить в любом месте через: Код: QSqlDatabase db = QSqlDatabase::database(); Название: Re: Ошибка открытия БД MySQL Отправлено: nitro2005 от Октябрь 25, 2010, 13:23 Код: dbArchive = new QSqlDatabase("QMYSQL"); Название: Re: Ошибка открытия БД MySQL Отправлено: Danila_Bagrofff от Октябрь 25, 2010, 13:45 Код: dbArchive = new QSqlDatabase("QMYSQL"); Это protected метод. Напрямую его не вытащить. Цитировать QSqlDatabase::QSqlDatabase ( const QString & type ) [protected] To kibsoft. Цитировать А зачем вам нужно передавать указатель на этот объект? Вы всегда можете его получить в любом месте через: Код: QSqlDatabase db = QSqlDatabase::database(); То есть одновременно можно работать только с одной БД??? То есть только одна открытая бд может быть? Мне вот надо из одной БД программно перенести данные в другую. Это значит, надо регулярно закрывать одно соединение и открывать другое? Я правильно понимаю?... Как то это неправильно =( И, кстати, в release сборке: Код: QSqlDatabase dbArchive2 = QSqlDatabase::addDatabase("QMYSQL"); На операции open происходит выброс: Цитировать Запускается D:\Program\MigrateArchive-build-desktop\release\MigrateArchive.exe... D:\Program\MigrateArchive-build-desktop\release\MigrateArchive.exe завершился с кодом -1073741819 При этов debug-сборке таких ошибок нет и open проходит успешно. В чем может быть проблема?... Название: Re: Ошибка открытия БД MySQL Отправлено: Пантер от Октябрь 25, 2010, 14:07 Неверно. Давай названия своим соединениям и можешь хоть с 10-ю БД работать.
QSqlDatabase QSqlDatabase::addDatabase ( const QString & type, const QString & connectionName = QLatin1String( defaultConnection ) ) Название: Re: Ошибка открытия БД MySQL Отправлено: Danila_Bagrofff от Октябрь 25, 2010, 14:12 О, точно =((( он по умолчанию все в default соединения добавляет...
Но что-то проблема с release- и с debug-сборками непонятна =( release сборка так и не работает... В чем может быть проблема?... Говорит: Цитировать Запускается D:\Program\MigrateArchive-build-desktop\release\MigrateArchive.exe... Не удалось получить отладочный вывод!D:\Program\MigrateArchive-build-desktop\release\MigrateArchive.exe завершился с кодом -1073741819 |