Название: QT + ODBC. Возвращаемые значения ХП. Это даже и не глюки... Отправлено: span от Ноябрь 28, 2007, 19:24 Доброго дня всем.
Есть приложение, работает с базой (MS SQL 2005) через QSqlDatabase. С простым SQL все отлично. Таблицы просматриваются, обновляются, и.т.д. Есть процедура на Transact SQL. Имеет пару входных значений и пару выходных Код: ALTER PROCEDURE [dbo].[GetEndTime] С входными параметрами все отлично, а вот с выходными - беда. Пытаюсь забиндить значение Message к запросу как QSql::InOut (просто QSql::Out не работает вообще) Код: query.prepare("execute GetEndTime :termname, :ccy, :enddate, :mes"); Теперь в s пустая строка, хотя ХП возвращает значение. если сделать так: Код: query.bindValue(":mes", QVariant(QVariant::String), QSql::InOut); А теперь внимание! Если сделать так: Код: query.bindValue(":mes", "string len = 15", QSql::InOut); Что делать? как правильно биндить переменные OUTPUT. Может кто сталкивался уже... Название: Re: QT + ODBC. Возвращаемые значения ХП. Это даже и не глюки... Отправлено: crossly от Ноябрь 29, 2007, 20:53 попробуй перед взятием значения query.next()....
Название: Re: QT + ODBC. Возвращаемые значения ХП. Это даже и не глюки... Отправлено: Voffkaa от Октябрь 16, 2008, 00:05 Столкнулся с такой же проблемой.
Решение получилось такое: q.prepare("{CALL GetFullAddress(?,?)}"); q.bindValue(0,unid); q.bindValue(1,"iurgieurieruvhieurvbieur viuer iuhrivhihrvfirfier ifeu hrif heri hfeirhf eiur ieurhf eiurfh ieurf ei",QSql::InOut); Дальше по мурзилке... Короче, сдается, что ему надо передать что-то вроде буфера, в котором изначальная строка заместится ответом. Создаем буфер, передаем функции, она его заполняет... Возвращение к давно забытым техникам... Совсем не Qt-style... |