Russian Qt Forum

Qt => Общие вопросы => Тема начата: Trademaster от Август 23, 2013, 23:09



Название: Извлечь строку из SQLite[РЕШЕНО]
Отправлено: Trademaster от Август 23, 2013, 23:09
Есть база данных sqlite. В ней всего одна строка в 2 столбца. Предположим ,у мну есть 2 переменные . В одну мне нужно забить содержимое (текст) первого столбца ,а в другую переменную нужно забить значение второго столбца. Как это реализовать в QT?


Название: Re: Извлечь строку из SQLite
Отправлено: gil9red от Август 24, 2013, 00:01
Создаете нужный класс, работающий с БД, используя интерфейс того класса, отправляете запрос  и получаете результат запроса :)

по работе с БД:
http://habrahabr.ru/post/51650/
http://habrahabr.ru/post/128836/
ну и конечно, документация ))


Название: Re: Извлечь строку из SQLite
Отправлено: Trademaster от Август 24, 2013, 00:31
Доки не сильно помогли ,не нашел то ,что нужно ,поэтому и спросил здесь ,надеясь получить конкретный ответ :)


Название: Re: Извлечь строку из SQLite
Отправлено: gil9red от Август 24, 2013, 09:55
Точно не помогли? :)
Вот доки на русском:
http://doc.crossplatform.ru/qt/4.3.2/qtsql.html#details

Там все расписано по шагам:
как подключиться к БД,
как отправить запрос,
как обработать результат запроса :)


Название: Re: Извлечь строку из SQLite
Отправлено: Trademaster от Август 24, 2013, 10:07
Все ,нашел я .
QSqlRecord rec = a_query.record();
    int number = 0,
            age = 0;
    QString address = "";

    while (a_query.next()) {
        number = a_query.value(rec.indexOf("number")).toInt();
        age = a_query.value(rec.indexOf("age")).toInt();
        address = a_query.value(rec.indexOf("address")).toString();

        qDebug() << "number is " << number
                 << ". age is " << age
                 << ". address" << address;
    }
Но у меня подобный код не работает :(
 QSqlQuery a_query;
    QSqlRecord rec = a_query.record();
    QString addressExe;
    QString addressIcon;
    while(a_query.next()) {
        addressExe = a_query.value(rec.indexOf("addressExe")).toString();
        addressIcon = a_query.value(rec.indexOf("addressIcon")).toString();
    }
    qDebug() << addressExe << addressIcon;
}


Название: Re: Извлечь строку из SQLite
Отправлено: Bepec от Август 24, 2013, 10:18
Говорили где то когда то в ассистенте, что QSqlQuery сначала выполнять надо exec'ом.


Название: Re: Извлечь строку из SQLite
Отправлено: Trademaster от Август 24, 2013, 10:24
нужно каким-то образом спозиционировать указатель на данные ,я правда не знаю как.
Попробовал сделать так :
 QString str = "SELECT * FROM FuOrg";
    a_query.exec(str);
    QSqlRecord rec = a_query.record();
    qDebug() << rec;
    QString addressExe;
    QString addressIcon;

        addressExe = a_query.value(rec.indexOf("addressExe")).toString();
        addressIcon = a_query.value(rec.indexOf("addressIcon")).toString();
    qDebug() << addressExe << addressIcon;
Не помогло


Название: Re: Извлечь строку из SQLite
Отправлено: Trademaster от Август 24, 2013, 10:28
Вопрос решен ,всем спс за помощь :)