Доброго дня всем.
Есть приложение, работает с базой (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.
Может кто сталкивался уже...