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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ubuntu9.10 Qt FreeTDS UnixODBC  (Прочитано 2780 раз)
rusvid
Гость
« : Декабрь 09, 2009, 11:05 »

Есть некоторая проблема с работай сабжа.
Вобщем, имеется на сервере 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...
Записан
Tonal
Гость
« Ответ #1 : Декабрь 24, 2009, 07:45 »

Посмотри какая версия FreeTDS и с какими ключами собран.
Я как-то ковырялся с ним, но довольно давно...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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