Russian Qt Forum
Ноябрь 25, 2024, 09:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Извлечь строку из SQLite[РЕШЕНО]  (Прочитано 4034 раз)
Trademaster
Гость
« : Август 23, 2013, 23:09 »

Есть база данных sqlite. В ней всего одна строка в 2 столбца. Предположим ,у мну есть 2 переменные . В одну мне нужно забить содержимое (текст) первого столбца ,а в другую переменную нужно забить значение второго столбца. Как это реализовать в QT?
« Последнее редактирование: Август 24, 2013, 10:28 от Trademaster » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Август 24, 2013, 00:01 »

Создаете нужный класс, работающий с БД, используя интерфейс того класса, отправляете запрос  и получаете результат запроса Улыбающийся

по работе с БД:
http://habrahabr.ru/post/51650/
http://habrahabr.ru/post/128836/
ну и конечно, документация ))
« Последнее редактирование: Август 24, 2013, 00:03 от gil9red » Записан

Trademaster
Гость
« Ответ #2 : Август 24, 2013, 00:31 »

Доки не сильно помогли ,не нашел то ,что нужно ,поэтому и спросил здесь ,надеясь получить конкретный ответ Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Август 24, 2013, 09:55 »

Точно не помогли? Улыбающийся
Вот доки на русском:
http://doc.crossplatform.ru/qt/4.3.2/qtsql.html#details

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

Trademaster
Гость
« Ответ #4 : Август 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;
}
« Последнее редактирование: Август 24, 2013, 10:15 от Trademaster » Записан
Bepec
Гость
« Ответ #5 : Август 24, 2013, 10:18 »

Говорили где то когда то в ассистенте, что QSqlQuery сначала выполнять надо exec'ом.
Записан
Trademaster
Гость
« Ответ #6 : Август 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;
Не помогло
Записан
Trademaster
Гость
« Ответ #7 : Август 24, 2013, 10:28 »

Вопрос решен ,всем спс за помощь Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.