Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 20:38   #1
i-cpp
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 33
По умолчанию sql, mysql, odbc..

Подскажите что я не так сделал (подключаюсь локально, пароля нет):
Код:
// ----------------------------------------------------------------------
bool server::connectToDB()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "Connection to MySQL");
    db.setDatabaseName("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=ps_log_db;USER=root;PASSWORD=;");
    if (!db.open()) {
        QMessageBox::information(0, "Database error",db.lastError().text());
        return false;
    }
    return true;
}
// ----------------------------------------------------------------------
void server::writeDataToDB(QString data)
{
    if (!connectToDB()) return;
    getDataFromClient(data);
    QSqlQuery query;
    if (!query.exec("INSERT INTO ps_log(id_client, date, query) VALUES ("
        + dataFromClient.clientID + ", CURRENT_TIME(), '" + dataFromClient.query + "');"))
    {
        QMessageBox::information(0, "Database error", "Query not exec.");
    }
}
Терминал выдаёт: QSqlQuery::exec: database not open
i-cpp вне форума Ответить с цитированием
Старый 25.03.2010, 21:12   #2
i-cpp
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 33
По умолчанию

ой, сам разобрался:

Код:
QSqlDatabase db;
QSqlQuery *query;
// ----------------------------------------------------------------------
bool server::connectToDB()
{
    db = QSqlDatabase::addDatabase("QODBC", "Connection to MySQL");
    db.setDatabaseName("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=ps_log_db;USER=root;PASSWORD=;");
    if (!db.open()) {
        QMessageBox::information(0, "Database error",db.lastError().text());
        return false;
    }
    return true;
}
// ----------------------------------------------------------------------
void server::writeDataToDB(QString data)
{
    if (!connectToDB()) return;
    getDataFromClient(data);
    query = new QSqlQuery(db);
//    if (!query.exec("INSERT INTO ps_log(id_client, date, query) VALUES ("
//        + dataFromClient.clientID + ", CURRENT_TIME(), '" + dataFromClient.query + "');"))
    if (!query->exec("INSERT INTO ps_log(id_client, date, query) VALUES (123, CURRENT_TIME(), 'test');"))
    {
        QMessageBox::information(0, "Database error", "Query not exec.");
    }
    delete query;
}
i-cpp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать псевдоним в ODBC и присоединить свою бд к Ms Sql Server xxxsas Общие вопросы C/C++ 3 10.06.2010 06:50
MySQL Connector ODBC TaTT DoGG Общие вопросы .NET 3 17.02.2010 20:25
Delphi 7 ADOConnection Mysql ODBC 5.1.6 Winx64 Spot БД в Delphi 0 15.01.2010 04:52
MSSQL <-> MySQL ODBC transport SuperVisor SQL, базы данных 1 08.10.2009 13:32
Проблема соединения с MySQL через ODBC yakovlev87 БД в Delphi 1 27.08.2007 09:51