#0
by Дуб
Здравствуйте. Подскажите, плз, кто знает: есть ли возможность ускорить процесс чтения *.dbf файлов? Читаю из-под 1С (v8), на чтение одной записи уходит порядка 0,1 секунды. Если учесть, что в читаемом файле более 300000 записей, работа становится проблематичной. В принципе, есть критерии отбора при работе с файлом, т.е. если значение одного из полей не попадает в критерий - то запись можно пропускать, но на их чтение и анализ уходит время. Возможно, можно обратиться через какие-нибудь средства windows?
#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С
В этой группе 1С
- Рассылка сообщений пользователям средствами 1С
- А что за ошибка "SDBL Выход за пределы размерности результата"?
- запуск внешней обработки из командной строки
- v7: Аналог RepVal.ert Для БП (убрать дубли контрагентов/договоров)
- Как зайти в 1С под нужным пользователем, если установлена аутентификация W
- Запрос ДвиженияСубконто
- v7: Что это значит, объясните плиз?
- Расходы по страхованию в ЗУПе
- Как в батнике получить день недели?
- Проектирование: SQL: округление числа до знака после запятой
- Проверка уникальности элементов справочников при загрузке в 1С8.0:Бухг
- Закрывается 1с при печати
- Вывести поля документа основания в запросе
- экспорт данных ис СБИС++ в 1c
- v7: Как правильно списать чековую книжку
- v7: Где можно взять адресный классификатор для ЗУП 2.1
- Где можно найти конфигурацию УПП хотябы демку?
- v7: Как ввести в эксплуатацию МЦ в УПП 8.0
- Права доступа пользователей
- ЗиК: Как прекратить действие расчета?