Есть некоторая проблема с работай сабжа.
Вобщем, имеется на сервере MS SQL 2005 имеется хранимая процедура:
ALTER procedure [dbo].[fp_test]
(@value varchar(50) out
--@Number int out
)
as
select @Value = 'test string'
--select @Number = 777
Имеется такой код:
QSqlQuery query;
//query.setForwardOnly(true);
query.prepare("{CALL dbo.fp_test(?)}");
query.bindValue("Value", strValue,QSql::Out);
//query.bindValue("Number",n,QSql::Out);
if (!query.exec()) return 1;
strValue = query.boundValue("Value").toString();
//n = query.boundValue("Number").toInt();
Под WinXP данный код успешно отрабатывает — в strValue получаем "test string"
На Ubuntu query.exec() возвращает false, в окне вывода получаем
QODBCResult::exec: unable to bind variable: " [FreeTDS][SQL Server]Invalid data type".
Если работать с целочисленным параметром (раскомментировать/закомментировать соответствующие строки), то
и в WinXP и в Ubuntu код успешно выполняется.
Т.е. проблема со строковыми параметрами.
Возможно дело в кодировках ?
В /etc/freedts/freedts.conf указано client charset = UTF-8...