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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с запросом SELECT...  (Прочитано 3136 раз)
bayah
Гость
« : Июнь 07, 2010, 15:08 »

Возможно я сошел с ума, но...

Есть таблица.

Код:
    QSqlQuery query;
    query.exec("CREATE TABLE DIST ("
               "CODE_D INTEGER PRIMARY KEY NOT NULL, "
               "NAME_D VARCHAR(20) UNIQUE NOT NULL"
               ");");

Таблица, к примеру, заполнена значениями:
CODE_D       NAME_D

1                alpha
2                beta
3                gama

Дальше я делаю запрос:

Код:
        QString id = "1";
        QSqlQuery query;
        query.exec("SELECT NAME_D FROM DIST WHERE CODE_D = "+id+";");
        query.next();
        QString a = query.value(0).toString();

Если же пытаюсь сделать наоборот - по имени получить код, ничего не выходит:

Код:
        QString name = "beta";
        QSqlQuery query;
        query.exec("SELECT CODE_D FROM DIST WHERE NAME_D = "+name+";");
        query.next();
        QString a = query.value(0).toString();

query.next() возвращает false. Я что-то не понимаю видимо?
Записан
crossly
Гость
« Ответ #1 : Июнь 07, 2010, 15:14 »

во первых ; в конце не нужно.... во вторых
Код:
query.exec("SELECT CODE_D FROM DIST WHERE NAME_D = '"+name+"'");
т.е. в СУБД должно быть передано
Код:
SELECT CODE_D FROM DIST WHERE NAME_D = 'beta' 
а не
Код:
SELECT CODE_D FROM DIST WHERE NAME_D = beta 
Записан
Kolobok
Гость
« Ответ #2 : Июнь 07, 2010, 15:36 »

Посмотри описание класса QSqlQuery. Там много полезных методов.
Записан
bayah
Гость
« Ответ #3 : Июнь 07, 2010, 15:56 »

crossly , спасибо.
Точно, так и надо было...
Код:
SELECT CODE_D FROM DIST WHERE NAME_D = 'beta' 
Записан
crossly
Гость
« Ответ #4 : Июнь 07, 2010, 16:05 »

ну что могу сказать... с++ не все... sql тоже учить надо... Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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