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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2013, 20:10   #1  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Для работы с DBF осмелюсь посоветовать начать использовать Net сборки, например FastDBF: Обработка DBF через .net
Удобней использовать, выше скорость и на сервере x64 работает.
Дополнительный плюс, в отличие от мелкософтовского драйвера, позволяет корректно задавать количество десятичных разрядов для типа numeric и различные кодировки русского.
За это сообщение автора поблагодарили: asd1274 (1), ilyuha (1).
Старый 04.04.2013, 21:44   #2  
asd1274 is offline
asd1274
Участник
Компания АМАНД
 
32 / 12 (1) ++
Регистрация: 29.09.2008
Адрес: Ковров
Цитата:
Сообщение от handy-comp Посмотреть сообщение
Для работы с DBF осмелюсь посоветовать начать использовать Net сборки, например FastDBF: Обработка DBF через .net
Удобней использовать, выше скорость и на сервере x64 работает.
Дополнительный плюс, в отличие от мелкософтовского драйвера, позволяет корректно задавать количество десятичных разрядов для типа numeric и различные кодировки русского.
Весьма интересный вариант - надо будет попробовать. Спасибо
Старый 05.04.2013, 08:15   #3  
asd1274 is offline
asd1274
Участник
Компания АМАНД
 
32 / 12 (1) ++
Регистрация: 29.09.2008
Адрес: Ковров
Вот рабочий пример - посмотрите его - наверное имеет смысл так сделать. Правда не сделал проверку на наличие файла.

X++:
static void CReateDBFCustomer_RContract(Args _args)
{


    CCADOConnection             dBF_Con;
    CCADOCommand                aDO;
    CCADORecordset              aDR;
    str filePath = 'c:\\1\\', fileName = '001.dbf';
    str                         cmdText, cmd_del, cmd_value;
    CustTable                   CustTable;
    RContractTable              RContractTable;

    ;

    dBF_Con     = new CCADOConnection();
    aDO         = new CCADOCommand();
    aDR         = new CCADORecordset();


     dBF_Con.open("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Extended Properties=dbase 5.0;Data Source="+filePath+";");
     
        ADO.activeConnection(dBF_Con);
        if (dBF_Con)
    {
         cmd_del = "DROP Table "+ fileName;
         ADO.commandText(cmd_del);
         ADR = ADO.execute();

       cmdText = " CREATE TABLE " + fileName + " (ACCOUNTNUM char(20), DATEDOG date, NDOG char(20), DOGACCOUNT char(10))"; 

        ADO.commandText(cmdText);
        ADR = ADO.execute();

      while select RContractTable


        {

        cmd_value = strfmt("%1', '%2', '%3', '%4')", RContractTable.RContractPartnerCode, date2str(RContractTable.ContractDate, 123, 2, -1, 2, -1, 2),
                        RContractTable.RContractNumber, RContractTable.RContractAccount);



        cmdText = "insert into " + fileName + " (ACCOUNTNUM, DATEDOG, NDOG, DOGACCOUNT) values ('" + cmd_value ; 


        ADO.commandText(cmdText);
        ADR = ADO.execute();

        }

     }
}
Старый 05.04.2013, 08:58   #4  
asd1274 is offline
asd1274
Участник
Компания АМАНД
 
32 / 12 (1) ++
Регистрация: 29.09.2008
Адрес: Ковров
Еще уточнил - на самом деле можно в оператор CREATE указывать директорию, но нужен движок Jet, то есть где то так:
X++:
 dBF_Con.open("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Extended Properties=dbase 5.0;Data Source="+filePath+";");
Однако лучше и наверное проще делать как в предыдущем посте.
Теги
ado, dbf, создание файла

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Need help ошибка Неправильный тип индекса массива. Evgeniy2020 DAX: Администрирование 3 05.11.2013 03:13
Ошибка в логе при установке клиента AX 2009 sao DAX: Администрирование 9 04.02.2010 11:56
ошибка при экспорте в WORD Nikolaich DAX: Программирование 14 27.01.2009 17:50
Поля 255 символов при экспорте в DBF Beast-L DAX: Программирование 5 25.07.2007 14:22
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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