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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.05.2008, 14:30   #1  
mefodiy is offline
mefodiy
Участник
 
96 / 10 (1) +
Регистрация: 08.07.2007
Есть таблица Foxpro, из которой нужно экспортировать данные в Navision.
Подключаюсь через Provider=VFPOLEDB.
Текстовые данные считываются без проблем, но, как только дело доходит до Decimal, то вылетает ошибка:
"Этот тип не поддержтвается C/SIDE...
Пробовал варианты:
1. MyValue := DbfRecords.Fields.Item('FieldName').Value;
2. MyString := FORMAT(DbfRecords.Fields.Item('FieldName').Value)
3. EVALUATE(MyValue,FORMAT(DbfRecords.Fields.Item('FieldName').Value));

где:

MyValue - Decimal
MyString - Text
DbfRecords - Automation - 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset

Везде одна и та же ошибка.
Буду благодарен за помощь.
Спасибо.
Старый 19.05.2008, 15:46   #2  
Dolter_imported is offline
Dolter_imported
Участник
 
47 / 10 (1) +
Регистрация: 23.09.2004
Цитата:
Сообщение от mefodiy Посмотреть сообщение
Текстовые данные считываются без проблем, но, как только дело доходит до Decimal, то вылетает ошибка:
"Этот тип не поддержтвается C/SIDE...
прямо в запросе перегоняй число в строку... с датами лучше тоже также поступать
__________________
YEP! тел. (905) 561-94-00
Старый 19.05.2008, 16:04   #3  
mefodiy is offline
mefodiy
Участник
 
96 / 10 (1) +
Регистрация: 08.07.2007
Запрос у меня следующий (названия полей изменены):

DbfRecords.Open('SELECT TextField, DecimalField, DateField FROM FoxProFile ORDER BY DateField');

Как сделать запрос? Если можно пример.
Старый 20.05.2008, 10:02   #4  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
А если выгрузить сначала в excel, а потом в Nav?
Старый 20.05.2008, 11:52   #5  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от mefodiy Посмотреть сообщение
Запрос у меня следующий (названия полей изменены):

DbfRecords.Open('SELECT TextField, DecimalField, DateField FROM FoxProFile ORDER BY DateField');

Как сделать запрос? Если можно пример.
Выведите поля DecimalField, DateField (не для все выборки, а для парочки первых) в сообщении на экран и поссмотрите как они отображаются.
Старый 20.05.2008, 12:26   #6  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Нав не распознает поле типа decimal и boolean, к сожалению не знаю фокспрошонго диалекта SQL, для SQL сервера запрос будет выглядеть как:
DbfRecords.Open('SELECT TextField, cast(DecimalField as money), DateField FROM FoxProFile ORDER BY DateField');
Старый 21.05.2008, 10:37   #7  
mefodiy is offline
mefodiy
Участник
 
96 / 10 (1) +
Регистрация: 08.07.2007
Пришлось экспортировать через Excel.
Но это, все-таки, обходной и неправильный путь.
Если у кого-то возникнут идеи, буду благодарен.
Старый 22.05.2008, 14:05   #8  
mefodiy is offline
mefodiy
Участник
 
96 / 10 (1) +
Регистрация: 08.07.2007
Нашел (не без вашей помощи) следующее решение:

DbfRecords.Open('SELECT TextField, CAST(DecimalField AS VARCHAR(12)) DecimalField, FROM FoxProFile ORDER BY DateField');

Потом делаю преобразовывание:

EVALUATE(MyValue, CONVERTSTR(FORMAT(DbfRecords.Fields.Item('DecimalField').Value),'.',','));

CONVERTSTR здесь нужен, так как после CAST десятичный сепаратор получается в виде точки, которую нужно преобразовать в запятую.

Всем спасибо.
 


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

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

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