Имя: Пароль:
1C
 
Прямой запрос получает только целую часть числа
0 SashaNox
 
11.03.15
10:53
Добрый день!

Подключаюсь к некой БД таким образом:

Соединение = Новый COMОбъект("ADODB.Connection");

СтрокаСоединения = "Provider=MSDASQL.1;Password=Пароль;Persist Security Info=True;User ID=Логин;Extended Properties="DRIVER=Client Access ODBC Driver (32-bit);SYSTEM=192.168.0.1;UID=Логин;DBQ=frpdta;DFTPKGLIB=QGPL;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(IBM),2,0,1,0,512;QRYSTGLMT=-1;XDYNAMIC=0;TRANSLATE=1;SIGNON=1;";Initial Catalog=GBEDCJDE;QueryTimeout=0";

Соединение.Open(СтрокаСоединения);

Далее выполняю запрос:

Выборка = Соединение.Execute(ТекстЗапроса);

Самый простой запрос возвращает только целую часть чисел, дробная часть отсекается.

Например запрос:

select 1.123 as fff from TAB

Возвращает 1

Подскажите как быть? Может какого то параметра в строке соединения не хватает?
1 фобка
 
11.03.15
10:57
Куда возвращает? А если "cast(1.123 as numeric(10,2)) as fff"?
2 SashaNox
 
11.03.15
11:03
(1) в таблицу. Результат аналогичный 1
3 Ненавижу 1С
 
гуру
11.03.15
11:06
(2) в какую таблицу? может у тебя там точность равно 0 знаков
4 фобка
 
11.03.15
11:07
(2) значит задай тип колонки в тз,  как ты это выгружаешь ты не указал
5 SashaNox
 
11.03.15
11:09
Извиняюсь за неточность описания, делаю так:

Пока Выборка.EOF() = 0 Цикл
Значение = Выборка.Fields("fff").Value;        
Выборка.MoveNext();
        
КонецЦикла;

Дальше выборка преобразуется в таблицу, в данном случае Значение = 1.
6 Новый участник
 
11.03.15
11:15
Умножь поле на тыщу, получи его, подели на тыщу в своём коде.
7 SashaNox
 
11.03.15
11:18
(6) гениально)) сработало
Независимо от того, куда вы едете — это в гору и против ветра!