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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QIBASE bindValue  (Прочитано 3852 раз)
joker
Новичок

Offline Offline

Сообщений: 49


Просмотр профиля
« : Октябрь 31, 2011, 16:54 »

Не могу понять почему не работает bindValue/addBindValue на QIBASE драйвере.

вначале посмотрим что с драйвером (db подключен к нормальной живой базе)
Код:
    QSqlDriver *drv = db.driver();
    qDebug()<<drv->hasFeature(QSqlDriver::PreparedQueries);
    qDebug()<<drv->hasFeature(QSqlDriver::NamedPlaceholders);
    qDebug()<<drv->hasFeature(QSqlDriver::PositionalPlaceholders);
Код:
true 
false
true

То есть именованные вроде не поддерживаем, но позиционные - должны

Теперь сам запрос
Цитировать
    queryRead = new QSqlQuery();
    queryRead->prepare("select value from simpla$settings where userId = ? and key = ? and arrayIndex = ? ");

    queryRead->addBindValue(scope==0?userId:scope);
    queryRead->addBindValue(key);
    queryRead->addBindValue(arrayIndex);
результат
Цитировать
QIBaseResult::exec: Parameter mismatch, expected 0, got 3 parameters

То есть таки не поддерживается? Или я что-то не так делаю?
Записан
Whiplash
Гость
« Ответ #1 : Ноябрь 02, 2011, 09:19 »

Чего-то не так делаешь, наверно. Или просто не работает.
Вот гораздо более крутой, чем дефолтный, драйвер для firebird (если, конечно, Firebird используешь): http://code.google.com/p/qtfirebirdibppsqldriver/
Там есть именованные плейсхолдеры.

А со стандартным драйвером я поступал так:
Код:
QSqlQuery q(db.db);
    q.prepare("insert into log (starter, screenshot, comment, thumb) values (?,?,?,?)");
    q.bindValue(0,QString("%1.%2").arg(QHostInfo::localDomainName()).arg(QHostInfo::localHostName()));
    q.bindValue(1,scr.data());
    q.bindValue(2,comment);
    q.bindValue(3,pscr.data());


Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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