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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.05.2005, 22:48   #1  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Скорость Axapta -> DBF
Подскажите, есть ли способ убыстрить экспорт данных в ДБФ? У меня на 40 000 строк уходит около 40 минут, и победить это удалось путем таких неимоверных выкрутасов, что волосы на голове дыбом встают. Сделал ликед сервер и через Jet и дистриьютед квери выкидываю в дбф - тогда 20 секунд занимает....
Старый 19.07.2005, 09:49   #2  
chi is offline
chi
Участник
 
80 / 13 (1) ++
Регистрация: 21.01.2004
Опишите по подробней, плиз...
Старый 19.07.2005, 10:55   #3  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
PHP код:
//Добавляем LinkedServer
query "exec sp_addlinkedserver dbfsrv, 'Jet 4.0','Microsoft.Jet.OLEDB.4.0','C:\\MyFile.dbf',NULL,'dBase III'"

stat.executeUpdate(query);

//Добавляем логин
query "exec sp_addlinkedsrvlogin dbfsrv, FALSE, sa, NULL ";
stat.executeUpdate(query);

//Льем данные
query "insert into Openquery(dbfsrv,'SELECT code,name FROM [C:\\MyFile.dbf]')"+
              
"select  cast(ltrim(rtrim(itemId)) as char(13)),"+
              
"cast(ltrim(rtrim(itemName)) as char(50)),"+
              
"from inventTable ";

Stat.executeUpdate(query);

//Подчищаем за собой
query "exec sp_dropserver 'dbfsrv', 'droplogins'";

stat.executeUpdate(query); 

Вот примерно так...
Старый 19.07.2005, 11:12   #4  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Ну волосы допустим на голове не встают, вполне здравый подход в смысле скорости, только линкованый сервак добавлять в впринципе не обязательно, можно через адо напрямую к дбф подключаться через провайдера, попробуйте класс CCADOConnection и иже с ними..
Старый 19.07.2005, 11:19   #5  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Пробовал по-разному - через openQuery быстрее всего получилось. Природу этого быстродействия не выяснял
Старый 19.07.2005, 16:59   #7  
Neosy is offline
Neosy
Участник
Аватар для Neosy
MCBMSS
 
29 / 14 (1) ++
Регистрация: 11.09.2002
Адрес: Москва
Попробовал приведенный пример.
Не работает. Выдается ошибка:
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.
[OLE/DB provider returned message: 'c:\MyFile.dbf' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.]


файл располагается именно в 'c:\MyFile.dbf'
Старый 19.07.2005, 17:06   #8  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Прошу прощения - копировал куски из кода и менял "для понятности" на лету - вот и доменялся

sp_addlinkedServer - там надо передавать директорию
в OpenQuery - имя файла без расширения
Старый 19.07.2005, 17:14   #9  
Neosy is offline
Neosy
Участник
Аватар для Neosy
MCBMSS
 
29 / 14 (1) ++
Регистрация: 11.09.2002
Адрес: Москва
:)
Теперь нет ошибки :-)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
создание dbf с помощью Axapta bannov DAX: Программирование 6 09.07.2008 14:43
AxDb Upgrade (Axapta 3.0 ->MDAX 4.0) AxaptaUser DAX: Администрирование 2 03.03.2008 18:24
DBF -> Axapta Protey DAX: Программирование 4 07.05.2007 13:12
Axapta 2.5 -> 3.0 Hezl DAX: Программирование 10 08.12.2005 19:07
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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