crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Работа QSqlQuery, Что я делаю не так
molchanoviv
  опции профиля:
сообщение 26.9.2008, 18:41
Сообщение #1


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


QSqlQuery query = QSqlQuery();
    query.exec("SELECT type, name, filename, number, classname  FROM classTable WHERE classname='none'");
    if ( query.isActive() )
    {
        while(query.next())
        {
            /*Не имеющий отношения к делу кусок кода*/
            QSqlQuery anotherQuery = QSqlQuery();
            anotherQuery.prepare("SELECT type, name, filename, number, classname  FROM classTable WHERE classname='VALUES (?)'");
            QString str = query.value(4).toString();
            anotherQuery.bindValue(0, str);
            anotherQuery.exec();


второй запрос где VALUES (?) не работает. как его правильно написать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 26.9.2008, 19:13
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Вот пример:
        QSqlQuery query;
        query.prepare("INSERT INTO employee (id, name, salary) "
                      "VALUES (:id, :name, :salary)");
        query.bindValue(":id", 1001);
        query.bindValue(":name", "Thad Beaumont");
        query.bindValue(":salary", 65000);
        query.exec();
Читай: Модуль QtSql
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 26.9.2008, 19:15
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


anotherQuery.prepare(
  "SELECT type, name, filename, number, classname  FROM classTable WHERE classname='VALUES (' || ? || ')'");

Ну и в некоторых диалектах конкатенация строк может вместо || обозначатся +
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 26.9.2008, 20:17
Сообщение #4


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


ViGour, поименованые параметры не помогают. я и сам их пробовал.

Tonal вот что выдает по вызову qDebug()<<anotherQuery.lastError().text();
Parameter count mismatch

Так, что больше никто не знает?

Сообщение отредактировал molchanoviv - 27.9.2008, 11:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 1.10.2008, 8:16
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Подожди, что ты сделать хочешь?
Какой запрос должен на сервер передаваться?
И сервер какой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 1.10.2008, 8:20
Сообщение #6


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


уже ничего. проблема решена. а сервер SQLite
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 1.10.2008, 8:35
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Ну так а решение где? :)
Прийдет страждущий, с подобной же проблемой, а решения нет...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 1.10.2008, 8:41
Сообщение #8


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


да я просто запрос перестроил подругому(абсолютно подругому)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 17:01