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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2013, 16:37   #1  
ilyuha is offline
ilyuha
Участник
 
32 / 15 (1) ++
Регистрация: 28.01.2011
Цитата:
Сообщение от asd1274 Посмотреть сообщение
Если можно, то покажите здесь значение cmdText - перед "ADR = ADO.execute();" - я его прогоню в foxpro.
CREATE TABLE \\Fs1\Reports\Axapta\АПТЕЧКА\003355.dbf (NDOC char(20),DATEDOC date,CODEPST char(20),EAN13 char(80),PRICE1 char(20),PRICE2 numeric,PRICE2N numeric,QNT numeric,SER char(20),GDATE char(20),DATEMADE char(20),NAME char(140),CNTR char(60),FIRM char(140),QNTPACK numeric,NDS numeric,REGPRC char(20),NUMGTD char(30),SERTIF char(35),SERTDATE date,SERTORG char(20),SUMPAY numeric,SUMNDS10 char(20),SUMNDS20 char(20),SUM10 char(20),SUM20 char(20),SUM0 char(20),PODRCD char(140),NUMZ char(20),DATEZ date,BILLNUM char(30),BILLDT date,SERTGIVE date,DATEPAY char(20))

Повторюсь, эта ошибка только на нескольких компьютерах
Старый 04.04.2013, 19:30   #2  
asd1274 is offline
asd1274
Участник
Компания АМАНД
 
32 / 12 (1) ++
Регистрация: 29.09.2008
Адрес: Ковров
Все ясно - вы пытаетесь в операторе CREATE сразу указать путь к файлу - так делать нельзя. Как указывать путь к файлу в примере есть. Завтра утром выложу полностью пример как желательно делать - переделайте под себя и должно работать. Кроме того наверное имеет смысл разбить операторы CREATE и INSERT.

Последний раз редактировалось asd1274; 04.04.2013 в 20:03.
Старый 04.04.2013, 20:10   #3  
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   #4  
asd1274 is offline
asd1274
Участник
Компания АМАНД
 
32 / 12 (1) ++
Регистрация: 29.09.2008
Адрес: Ковров
Цитата:
Сообщение от handy-comp Посмотреть сообщение
Для работы с DBF осмелюсь посоветовать начать использовать Net сборки, например FastDBF: Обработка DBF через .net
Удобней использовать, выше скорость и на сервере x64 работает.
Дополнительный плюс, в отличие от мелкософтовского драйвера, позволяет корректно задавать количество десятичных разрядов для типа numeric и различные кодировки русского.
Весьма интересный вариант - надо будет попробовать. Спасибо
Старый 05.04.2013, 08:15   #5  
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   #6  
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+";");
Однако лучше и наверное проще делать как в предыдущем посте.
Старый 05.04.2013, 13:52   #7  
ilyuha is offline
ilyuha
Участник
 
32 / 15 (1) ++
Регистрация: 28.01.2011
Цитата:
Сообщение от asd1274 Посмотреть сообщение
Все ясно - вы пытаетесь в операторе CREATE сразу указать путь к файлу - так делать нельзя. Как указывать путь к файлу в примере есть. Завтра утром выложу полностью пример как желательно делать - переделайте под себя и должно работать. Кроме того наверное имеет смысл разбить операторы CREATE и INSERT.
Можно и так.
Переделали бы, если у всех была эта ошибка.
Теги
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, время: 13:17.