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й день сижу.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:35.