![]() |
|
|
![]()
|
|
| Antiquar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.9.2009 Репутация: нет Всего: нет |
Вопрос не по теме программирования, но связанный с Qt.
Была программа написанная в VS2005 и Qt 4.3.3, работающая через ODBC с базой данных Microsoft SQL Server. В рабочем каталоге программы была папочка "sqldrivers", в котором лежал файл "qsqlodbc4.dll". Короче все как положено и все работало. Сейчас программу пришлось обновить, но уже в VS2008 и Qt 4.5.0. На некоторых компьютерах она запустилась. Но на двух возникли проблемы: - На одном (ОС Windows 2003 Server) запустилась только когда вернул файл "qsqlodbc4.dll" прежней версии от Qt 4.3.3. С dll-ой от новой версии не работает. выдает "Driver not loaded Driver not loaded". - На одном программа никак не хочет запускаться не новая, не старая версия. Выдает "Driver not loaded Driver not loaded" и все тут. Подобная тема, правда с sqlite уже обсуждалась http://forum.vingrad.ru/forum/topic-270579.html Делал все из данных там советов, поигрался с путями, но победить проблему так и не смог. Программа собрана с динмически подключаемыми dll-ми (при статической сборке, даже на компе разработчика выдает "Driver not loaded Driver not loaded") Методом шаманства установил, что манифест как то причастен к этому делу, но что надо сделать все равно не знаю. Что может быть? Что нужно сделать? В какую сторону наступать? |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: 15 Всего: 8 |
А после обновлении версии Qt и VS Вы перекомпилоровали программу?
|
|||
|
||||
| Antiquar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.9.2009 Репутация: нет Всего: нет |
Да, конечно. Пересобрал все по новой с pro файла.
|
|||
|
||||
| Acer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: 15 Всего: 8 |
А путь к плагину sql драйвера указан?
Что-то типа такого:
Если sqldrivers лежит в одной директории с *.exe, сделай так:
|
||||
|
|||||
| Antiquar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.9.2009 Репутация: нет Всего: нет |
Увы, никакая игра с путями к успеху не привела, но ситуацию удалось победить.
Природу всей этой "xр..." я так и не понял, ее, наверное, может объяснить тот, кто хорошо разбирается в ОС Windows XP и знает про манифесты более, чем можно найти на Vingrad-e. Да, дело именно в манифесте (может, по сути то и в чем то другом, но победилось это именно через манипуляции с манифестом). Вот как все было на ПЭВМ, на которой ничего не запускалось: - Перенес одну программу с Qt-ми DLL-ми и подкаталогом sqldrivers в котором ODBC-ый плагин qsqlodbc4.dll. При запуске вылетает сообщение "Программа не запускается". - Добавил в каталоге с exe-м файл Microsoft.VC90.CRT.manifest и файлы msvcm(p,r)90.dll. Программа запускается, но при попытке обратится к базе выдает "Driver not loaded Driver not loaded" (та ситуация, когда я и обратился на форум) - Заработало же все, когда я в каталог %WinDir%\WinSxS положил папочку "x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375" с DLL-ми msvcm(p,r)90.dll, а в каталог %WinDir%\WinSxS\Manifests файлы: "x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.Manifest" и "x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.cat", (то есть так же как и на моей машине) и все пошло. И еще, к сведению, если файл Microsoft.VC90.CRT.manifest переименовать в MyProgram.exe.manifest, то вообще вылетает ошибка доступа. Как это все понимать я не знаю. Кто может объяснить в чем тут было дело - буду рад услышать. P.S. А вот в статической версии программы до ODBC драйвера достучаться пока так и не удалось. Может я как то qsqlodbc4.lib неправильно подключаю (я его в Qt-м проекте подключаю строкой LIBS += ./LIB/qsqlpsql4.lib) |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |