Что за ошибка? |
Здравствуйте, гость ( Вход | Регистрация )
Что за ошибка? |
mezmay |
25.4.2011, 17:27
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Первый раз решил использовать базу данных. Написал по примеру:
error содержит: error = "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect" |
|
|
Borodeys |
27.4.2011, 20:05
Сообщение
#2
|
Студент Группа: Участник Сообщений: 23 Регистрация: 10.4.2011 Пользователь №: 2588 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот моя проблема из соседнего обсуждения :
Занимаюсь аналогичной проблемой уже длительное время. Подключение к БД осуществляется следующим образом создаем файл connection.h: #ifndef CONNECTION_H #define CONNECTION_H #include <QMessageBox> #include <QSqlDatabase> #include <QSqlError> #include <QtSql> static bool createConnection() { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("такая_то_база"); db.setUserName("логин_такой_то"); db.setPassword("пароль_эдакий"); bool connected = db.open(); if (!connected) { QMessageBox::critical(0, ("connection.h "),"Cannot open database =[\n " +(db.lastError().text()), QMessageBox::Cancel); return false; } } #endif // CONNECTION_H Затем из main.cpp обращаемся к данному заголовочному файлу: #include <QtGui/QApplication> #include "mainwindow.h" #include "connection.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.driverName()="count"; app.addLibraryPath("pugins"); if (!createConnection()){ QMessageBox::critical(0, ("main.cpp"),"Cannot open database =[\n" +(db.lastError().text()), QMessageBox::Cancel); return 1; } MainWindow w; w.show(); return app.exec(); } Затем, если у тебя window xp и MSSQL server, создаем драйвер подключения с именем нашей базы данных Панель управления\ Администрирование\Источники данных (ODBC)\вкладка Системный DSN кнопочка добавить Выбираем драйвер SQL Server Native Client и указываем его имя, как имя нашей базы данных. Барабанная дробь........... Тада, теперь можно подключаться к ODBC базе данных. Однако здесь только все начинается, по умолчанию QT использует только драйвера SQLite, а нам же нужен драйвер qsqlodbc4.dll и libqsqlodbc4.lib, которые лежат в папке qtdir\qt\plugins\sqldrivers. Увы, как их подключить я не знаю, необходимо что-то прописать в .pro файле. При компиляции massegeBox из main.cpp говорит следующее: Driver not loaded. Driver not losaded. Вот результаты компиляции: Запускается C:\Qt\TechJ\TechJ-build-desktop\debug\TechJ.exe... QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed. C:\Qt\TechJ\TechJ-build-desktop\debug\TechJ.exe завершился с кодом 1 Подозреваю, что проблема в библиотеках, вернее в их отсутствии. |
|
|
Текстовая версия | Сейчас: 27.4.2024, 20:56 |