Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 2 (https://www.otvetnemail.ru/novyj-arhiv-2-812/)
-   -   QT + ODBC. Возвращаемые значения ХП. Это даже и не глюки... (https://www.otvetnemail.ru/novyj-arhiv-2-812/qt-odbc-vozvrashaemye-znacheniya-hp-eto-dazhe-i-ne-glyuki-273460/)

Guest 29.09.2011 06:34

QT + ODBC. Возвращаемые значения ХП. Это даже и не глюки...
 
Доброго дня всем.Есть приложение, работает с базой (MS SQL 2005) через QSqlDatabase.С простым SQL все отлично. Таблицы просматриваются, обновляются, и.т.д.Есть процедура на Transact SQL. Имеет пару входных значений и пару выходныхКод:ALTER PROCEDURE [dbo].[GetEndTime]@TermName VARCHAR(30), @Ccy INT,@EndDate DATETIME OUTPUT, @Message VARCHAR(255) OUTPUTС входными параметрами все отлично, а вот с выходными - беда.Пытаюсь забиндить значение Message к запросу как QSql::InOut (просто QSql::Out не работает вообще)Код:query.prepare("execute GetEndTime :termname, :ccy, :enddate, :mes");// ...query.bindValue(":mes", "", QSql::InOut);query.exec();QString s = query.boundValue(":mes").toString(); Теперь в s пустая строка, хотя ХП возвращает значение.если сделать так:Код:query.bindValue(":mes", QVariant(QVariant::String), QSql::InOut);результат тот же.А теперь внимание! Если сделать так:Код:query.bindValue(":mes", "string len = 15", QSql::InOut);то после exec(); получаю обрубок из строки, длиною 14 символов.Что делать? как правильно биндить переменные OUTPUT.Может кто сталкивался уже...


Часовой пояс GMT, время: 18:33.


© www.otvetnemail.ru - Форум вопросов и ответов.