Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL Server и QT 
V
    Опции темы
Aleksiy
Дата 29.1.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Как в QT подключиться к MS SQL Server???
Я делаю так:
Код

         ......
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("local");
    db.setDatabaseName("base");
    db.setUserName("user");
    db.setPassword("mypass");
    QSqlError err;

    bool connected = db.open();
    if (!connected) 
        {
            QMessageBox::about(this, "Error",db.lastError().text()); 
        }
         ......    


и не получается:
[Microsoft][Диспечер драйверов ODBC] Источник данных не найден и не указан драйвер, успользуемый по умолчанию QODBC3: Unable to connect

QT собрал с параметрами 
Код

configure -platform win32-g++ -fast -debug-and-release -qt-sql-odbc 


PM MAIL   Вверх
SABROG
Дата 29.1.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Создаешь источник DSN в "Панель управления"->ODBC/BDE

и

Код

db.setDatabaseName("имя_источника_DSN"); 



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Aleksiy
Дата 29.1.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



спасибо, всё заработало
PM MAIL   Вверх
nurfet
Дата 28.11.2012, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Подскажите пожалуйста! У меня вот такой вопрос. Мне удалось QT подключить к MS SQL Server, но не удается создать таблицу и ввести данные, вот код:

Код

#include <QtCore/QCoreApplication>
#include <QtSql/QtSql>
static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("addressbook");
    db.setUserName("sa");
    db.setHostName("localhost");
    db.setPassword("sigmatel");
    qDebug() << db.drivers();
    if (!db.open()) {
        qDebug() << "Cannot open database: " << db.lastError();
        return false;
    }
    return true;
}
int main(int argc, char** argv)
{
    QCoreApplication app(argc, argv);
    if (!createConnection()) {
        return -1;
    }
    
    //Creating of the data base
    QSqlQuery query;
    QString str  = "CREATE TABLE addressbook ( "
        "number INTEGER PRIMARY KEY NOT NULL, "
        "name   VARCHAR(15), "
        "phone  VARCHAR(12), "
        "email  VARCHAR(15) "
        ");";
    if (!query.exec(str)) {
        qDebug() << "Unable to create a table";
    }
    //Adding some information
    QString strF = 
        "INSERT INTO  addressbook (number, name, phone, email) "
        "VALUES(%1, '%2', '%3', '%4');";
    str = strF.arg("1")
        .arg("Piggy")
        .arg("+49 631322187")
        .arg("[email protected]");
    if (!query.exec(str)) {
        qDebug() << "Unable to make insert operation";
    }
    str = strF.arg("2")
        .arg("Kermit")
        .arg("+49 631322181")
        .arg("[email protected]");
    if (!query.exec(str)) {
        qDebug() << "Unable to make insert operation";
    }
    if (!query.exec("SELECT * FROM addressbook;")) {
        qDebug() << "Unable to execute query - exiting";
        return 1;
    }
    //Reading of the data
    QSqlRecord rec     = query.record();
    int        nNumber = 0;
    QString    strName;
    QString    strPhone;
    QString    strEmail;
    while (query.next()) {
        nNumber  = query.value(rec.indexOf("number")).toInt();
        strName  = query.value(rec.indexOf("name")).toString();
        strPhone = query.value(rec.indexOf("phone")).toString();
        strEmail = query.value(rec.indexOf("email")).toString();
        qDebug() << nNumber << " " << strName << ";\t" 
            << strPhone << ";\t" << strEmail;
    }
    return 0;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.