Ускорение чтения DBF #288170


#0 by Дуб
Здравствуйте. Подскажите, плз, кто знает: есть ли возможность ускорить процесс чтения *.dbf файлов? Читаю из-под 1С (v8), на чтение одной записи уходит порядка 0,1 секунды. Если учесть, что в читаемом файле более 300000 записей, работа становится проблематичной. В принципе, есть критерии отбора при работе с файлом, т.е. если значение одного из полей не попадает в критерий - то запись можно пропускать, но на их чтение и анализ уходит время. Возможно, можно обратиться через какие-нибудь средства windows?
#1 by Конь в пальто
можно
#2 by Конь в пальто
;
#3 by DGorgoN
Поиск в яндексе, гугле, форуме дает воистину потрясающие результаты (с)
#4 by Дуб
а именно?
#5 by Дуб
Спасибо
#6 by Дуб
А что может быть причиной ошибки: "Внешняя таблица не имеет предполагаемый формат"? (Select * from [MDOC#DBF])
#7 by Дуб
И ещё: если файл был сформирован старым Fox Pro, где искать правильное название "Provider" и "Properties"?
#8 by pectopatop
у DBF-ов существует как минимум 3 формата разных...... :  DBase V  DBase IV  DBase III и т.д....... они все разные. следовательно и читать их надо заточенными под них (либо универсальными) читальщиками. а про провайдеров и пропертисов - обычно пишут самми создатели этих читалеских прог... (а-ля драйверов бд)
#9 by FerzCH
Можно вычитать файл в ТЗ, потом загружать из ТЗ - сильно во времени выиграешь. Файлы, возможно, преобразовать нужно через excel.
#10 by Дуб
какие универсальные читальщики ? В смысле, пример есть? боюсь, не выиграю: уже стоит условие - если значение первого поля не содержит определённого значения - то продолжить чтение. Скорость загрузки - особо не меняется. Единственный вариант, который вижу - читать уже саму выборку, которую сформирует что-то со стороны.
#11 by Дуб
есть vk_ado от Romix'а, но как ей пользоваться - непонятно (все примеры приведены для *.mdb, аналогичный синтаксис не катит при попытке подсунуть *.dbf)
#12 by Молния
попробуй дбф перед чтением сливать на виртуальный диск (рамдрайв), индексировать по нужному полю и потом обрабатывать. а еще можешь написать какую нибудь консольную прогу с управлением через командную строку, что бы она из дбф вытаскивала то, что надо. И уже результат в 1С обрабатывать.
#13 by Дуб
консольная прога опять таки означает обращение к тем или иным штатным драйверам ODBC Windows, т.е. то же, но в профиль. Насчёт виртуального диска - даже если это ускорит процесс вдвое - вопрос останется открытым: последняя загрузка шла 5 часов...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С