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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2007, 12:43   #1  
Vik80 is offline
Vik80
Участник
 
5 / 10 (1) +
Регистрация: 26.04.2007
Thumbs up
Добрый день. Возникла проблема может кто поможет. Реализован экспорт данных в dbf файлс помощью automation.
Проблема в том что при описании структуры создаваемого файла неполучается установить количество знаков после запятой для полей типа decimal.

dbfConnect Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Connection
dbfRecords Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset


dbfConnect.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + path + ';Extended Properties=dBase IV;'+
'Persist Security Info=FALSE;');


dbfConnect.Execute('CREATE TABLE '+FileName+'(ID VARCHAR(6),TYPE INT,DATA DATE,IBATCH VARCHAR(16),'+
'INUMBER VARCHAR(16),VATA DECIMAL(12,2),VATB DECIMAL(12,2),IDISCOUNT DECIMAL(12,2),TOTAL NUMERIC(12,2),'+
'DID Integer,CODE VARCHAR(12),DESCR VARCHAR(100),MANUF VARCHAR(100),COUNTRY VARCHAR(100),PBATCH VARCHAR(20),'+
'PANALYSIS VARCHAR(12),VALID DATE,PRICE NUMERIC(12,2),DISCOUNT NUMERIC(12,2),VAT NUMERIC(12,0),'+
'QNT NUMERIC(12,2),PRICEMAX NUMERIC(12,2),PRICEBAS NUMERIC(12,2),PRICERET NUMERIC(12,2)'+')');

или так читабельней:

dbfConnect.Execute('CREATE TABLE '+FileName+'('+
'ID'+' '+'VARCHAR(6),'+
'TYPE'+' '+'DECIMAL(12,0)'+', '+
'DATA'+' '+'DATE'+', '+
'IBATCH'+' '+'VARCHAR(16)'+', '+
'INUMBER'+' '+'VARCHAR(16)'+', '+
'VATA'+' '+'DECIMAL(12,2)'+', '+
'VATB'+' '+'DECIMAL( 12, 2)'+', '+
'IDISCOUNT'+' '+'DECIMAL(12,2)'+', '+
'TOTAL'+' '+'DECIMAL(12, 2)'+', '+
'DID'+' '+'INT'+', '+
'CODE'+' '+'VARCHAR(12)'+', '+
'DESCR'+' '+'VARCHAR(100)'+', '+
'MANUF'+' '+'VARCHAR(100)'+', '+
'COUNTRY'+' '+'VARCHAR(100)'+', '+
'PBATCH'+' '+'VARCHAR(20)'+', '+
'PANALYSIS'+' '+'VARCHAR(12)'+', '+
'VALID'+' '+'DATE'+', '+
'PRICE'+' '+'DECIMAL(12,4)'+', '+
'DISCOUNT'+' '+'DECIMAL(12,4)'+', '+
'VAT'+' '+'DECIMAL(12,0)'+', '+
'QNT'+' '+'DECIMAL(12,0)'+', '+
'PRICEMAX'+' '+'DECIMAL(12,2)'+', '+
'PRICEBAS'+' '+'DECIMAL(12,2)'+', '+
'PRICERET'+' '+'DECIMAL(12,2)'+
')');

(12,2) просто игнорируется, как впрочем и тип INT. при просмотре создаваемого файла все поля имеют тип numeric длинна 20 точность 5 (значение по умолчанию). Пробовал вместо decimal тавить сразу numeric, не помогает. В чем дело как исправить?
2й день сижу.
Старый 26.04.2007, 13:02   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Может не dBase IV драйвер надо а допустим фоксовский?
Старый 26.04.2007, 13:09   #3  
Vik80 is offline
Vik80
Участник
 
5 / 10 (1) +
Регистрация: 26.04.2007
Да думал FoxPro только вот ошибка для меня непонятная тогда вылетает...
Could not find installable ISAM.
Изображения
 
Старый 02.05.2007, 12:29   #4  
Vik80 is offline
Vik80
Участник
 
5 / 10 (1) +
Регистрация: 26.04.2007
Ну ошибка понятно непринсталлирован. И все таки в чем проблема может быть? Вроде бы делал где то это раньше не в навижене, все работало.
 


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

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

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