AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2012, 18:09   #1  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Добрый день(вечер) всем.
Делаю экспорт в DBF. Всё отлично выгружает....кроме числовых значений. Нужно выгрузить дробное число у которого 8 знаков после запятой.
Выгружаю вот так
Код:
CREATE(DBFBase);
DBFBase.Open('DRIVER=Microsoft dBASE Driver (*.dbf);DRIVERID=277;DBQ=' + ended Properties=DBASE IV;Persist Security Info=FALSE;');
CREATE(DbfRecords);

REPEAT
...
    DbfRecords.Fields().Item('XVAL').Value := TABLE.XVAL;
...
UNTIL ...
Смотрю по дебагеру значение в TABLE.XVAL нормально все 8 знаков. В Таблице DBF свойство поля нормально... 8 знаков... но записывает грубо говоря вот так 25.59710000 вместо 25.59712234
Понимаю что Навижн тут непричём.

DBFBase Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Connection
DbfRecords Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Recordset
Как выйти из данной ситуации???
Старый 14.05.2012, 13:56   #2  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Не уж то никто с этим не сталкивался?
Старый 14.05.2012, 14:31   #3  
Eugeny_F is offline
Eugeny_F
Участник
 
368 / 28 (1) +++
Регистрация: 18.11.2003
Адрес: Москва
Пардон, фигню написал
Старый 14.05.2012, 15:28   #4  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Eugeny_F а как я обрадовался увидев Ваше сообщение...думал ну наконец то....вот моё спасение
Старый 14.05.2012, 15:55   #5  
Eugeny_F is offline
Eugeny_F
Участник
 
368 / 28 (1) +++
Регистрация: 18.11.2003
Адрес: Москва
Извиняюсь, что не оправдал Ваши ожидание. А что, если попробовать написать
DbfRecords.Fields().Item('XVAL').Value := TABLE.XVAL * 1 000 000;

Если все знаки перейдут тогда можно попробовать потом полученную сумму обратно на миллион поделить.

Опять конечно ерунду написал, но вдруг поможет
Старый 14.05.2012, 17:00   #6  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Переводите число в строку и уже текст пишите в DBF.
Старый 14.05.2012, 17:47   #7  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Увы всё это не то... и со строкой не выйдет. Решение оказалось проще. Подкючился использую драйвера FoxPro
Код:
dbf.Open('Provider=VFPOLEDB;Data Source=пустькфайлу');
И через sql-запрос. Вставил данные. Всё записалось как надо.
Жаль что
Код:
DbfRecords.AddNew
Не работает при таком провайдере.
Вопрос закрыт.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:03.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.