crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Что за ошибка?
mezmay
  опции профиля:
сообщение 25.4.2011, 17:27
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Первый раз решил использовать базу данных. Написал по примеру:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("Tests");
    db.setUserName("Ivan");
    db.setHostName("localhost");
    db.setPassword("password");

    bool b = db.open();
    if(!b)
        QString error = db.lastError().text();

error содержит:
error = "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
silver47
  опции профиля:
сообщение 28.4.2011, 5:01
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Borodeys @ 27.4.2011, 22:05) *
Однако здесь только все начинается, по умолчанию QT использует только драйвера SQLite, а нам же нужен драйвер qsqlodbc4.dll и libqsqlodbc4.lib, которые лежат в папке qtdir\qt\plugins\sqldrivers.


Из коробки LGPL Qt поддерживает не только SQLite, но и другие типы БД, в том числе и, требуемый Вам, ODBC. Подключать их не нужно. Допустим у вас есть источник данных ODBC с именем MyDB, тогда подключение будет выглядеть так:

widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui>
#include <QtSql>
class Widget : public QWidget{
    Q_OBJECT
    QSqlDatabase db;
public:    
    Widget(QWidget *parent = 0);
    ~Widget();  
};
#endif // WIDGET_H


widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)  : QWidget(parent){
   bd = QSqlDatabase::addDatabase("QODBC");
   bd.setDatabaseName("MyDB");
   bd.setUserName("username");
   bd.setPassword("userpassword");
   if(!db.open()) qDebug() << "Can't open DB: " << db.lastError().text();

   // теперь можете работать со своей БД, например выполнять простые запросы:
   QSqlQuery query;
   if(query.exec("SELECT * FROM [sometable]")) qDebug() << "Selected: " << query.numRowsAffected() << "rows";
   else qDeubg() << "error: " << query.lastError().text();  
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- mezmay   Что за ошибка?   25.4.2011, 17:27
- - maint   Цитата(mezmay @ 25.4.2011, 23:27) Первый ...   25.4.2011, 17:59
- - Litkevich Yuriy   Цитата(mezmay @ 25.4.2011, 20:27) Первый ...   25.4.2011, 19:58
|- - Гость   Цитата(Litkevich Yuriy @ 25.4.2011, 19:58...   27.4.2011, 17:56
- - mezmay   Почему этот код работает (отображается таблица с д...   26.4.2011, 10:47
- - silver47   Вместо: QSqlDatabase db = QSqlDatabase::addDatabas...   26.4.2011, 10:50
- - mezmay   а какая разница? объект QSqlDatabase все равно оди...   26.4.2011, 10:52
- - silver47   ну попробуем по-другому... покажите вывод qDebug(...   26.4.2011, 10:56
- - mezmay   Раскрывающийся текст bool b = createConnection...   26.4.2011, 12:50
- - silver47   if(!query.exec(str)) qDebug...   26.4.2011, 12:59
- - mezmay   Вообще данные есть - открывал создавшуюся базу в т...   26.4.2011, 13:07
- - silver47   В заголовочном файле: QSqlTableModel *m_model; В ...   26.4.2011, 13:29
- - mezmay   Заработало! думаю проблема была в том что m_mo...   27.4.2011, 8:47
- - Litkevich Yuriy   Цитата(Гость_Гость_* @ 27.4.2011, 20:56) ...   27.4.2011, 18:18
- - Borodeys   Вот моя проблема из соседнего обсуждения : Занима...   27.4.2011, 20:05
- - silver47   Цитата(Borodeys @ 27.4.2011, 22:05) Однак...   28.4.2011, 5:01
- - Litkevich Yuriy   Borodeys, форматируй код (тэг: code)   28.4.2011, 10:11
|- - Borodeys   Вуху, заработало! Огромное спасибо silver47. А...   29.4.2011, 12:53
- - silver47   Ну во-первых WHERE (условие) AND (условие). Во-вто...   29.4.2011, 14:42


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 16:32