Выгрузка из DBF в Таблицу Значений без перебора записей. #223330


#0 by FreeFin
Уверен, что должна существовать, в виде драйвера, методики или программного кода, кто встречал?
#1 by VasilyKushnir
Мож я че не допонял, но по-моему на самом низком уровне любая выгрузка в ТЗ идет не массивом, а отдельными записями. Т.е. перебор записей все-равно наличествует, но где-то очень глубоко запрятан. Другое дело, если не устраивает 1С и реализовать это,  к примеру в ВК на с++.
#2 by FreeFin
ИМХО, не прав, ТЗ=двухмерный массив, ведь Загрузить и Выгрузить работают без перебора. Реализовать ессно можно, но зач "велосипед" изобретать?...если он, конечно, есть.
#3 by SnarkHunter
Ты смотрел сорцы, которые реализуют методы Загрузить и Выгрузить, и это позволяет тебе утверждать, что они работают без перебора?
#4 by Эльниньо
ТЗ=двухмерный массив ??? Многомерный, однако
#5 by FreeFin
Не утверждаю, а предполагаю, сырцов не видел (а кто их видел?). И вопрос не в этом. Ведь может тот же Exel или Access "втянуть" в себя dbf-ы, преобразовывая их конверторами в приемлемое время?=могут. И это где-то на уровне "переразметки" а не "построчного считывания". А 1Сина "прожевывает" большой dbf ну неприлично долго. В этом проблема.
#6 by FreeFin
Тогда вноси исправления в: если не согласен с определением. Извините, но не о том хотелось бы...
#7 by КонецЦикла
Даже метод НайтиЗначение работает по ходу перебором Напиши запрос может быть
#8 by Барбариска
"1Сина "прожевывает" большой dbf ну неприлично долго" - каким именно методом? Если стандартный XBase - действительно неприлично долго Если приделать Ado.Connection и SQL- запросы - то все летает, хотя и там перебор придется делать.
#9 by smaharbA
К примеру, но это колекция, а не ТЗ... ...
#10 by smaharbA
+ можна еще ускорить...
#11 by smaharbA
Я тут можна сказать нещадя живота своего, а они даж и не плюнули...
#12 by asady
кто не плюнул тот молча скопипастил :) Надо быть снисходительнее - время прохождения данного сигнала может быть очень продолжительным - особенно для тупых одноэснегов.
#13 by SnarkHunter
Тьху... :-))
#14 by smaharbA
во ... эт уже лучче... а то какие вы нафих мистяне :)
#15 by FreeFin
Спасиб, что в тему (типа плюну ))), но на (или сразу после): Стр=Файл.ReadAll;
#16 by smaharbA
вот тут-то и нада "ускорить" -
#17 by smaharbA
Загрузил 1SENTRY.DBF == 100М ну долга конечно...
#18 by FreeFin
Не пошло дальше: Может настройки или библиотеки необходимые отсутствуют? Хотя, увы, без цикла с перебором опять не получается. Где-то надо думать в сторону ЗначениеИзФайла (знать структуру ТЗ в состоянии ЗначениеВФайл), разбирать dbf поколоночно в СпмскиЗначений,...не, можно закопаться на неделю... или пойти кофею накатить?...
#19 by FreeFin
В связи с нерешенностью вопроса. Остановился на этом бреде (своём): (поиск неуникальных записей в файле 1sjourn.dbf в колонке IDDOC) Да и хвост с ним.
#20 by smaharbA
такбы сразу и говорил... Это делается немного иначе, ставится уникальный индекс, делается пометка на удаление, потом делается инверсия пометки удаления - все, вот вам и неуникальные записи...
#21 by FreeFin
А не затруднит ли чуть подробнее о: (как создавать и использовать индексы в 1с СП И ЖКК не посылать, я там был, давно правда),НО чем будет определятся уникальность, при возможном наличии неуникальных значений и их "связок" по нескольким (индексным) полям в текущем файле?
#22 by smaharbA
счас... типа такого
#23 by smaharbA
Ну тут тупо конечно удаляются повторяющиеся...
#24 by smaharbA
+ Да СписокЗначений тут даже лишний
#25 by FreeFin
(качает головой) это почти в два раза дольше, чем в ...Пока ДБФ.ВКонце*2, но с тем же результатом. Но как пример=понято, спасибо. Еще тут мулю накопал, dbf, открытый в Access, проверяет на уникальность записей в колонке вообще тремя строками, может через него открывать-проверять? (в виде дурноватого предположения)))
#26 by smaharbA
Может быть, но тута просто "ремонт" файлов DHXXXX или SCXXXX
#27 by dk
В ToySQL есть загрузка из DBF в таблицу значений, да и не только из DBF. Очень шустро загружает, например, лист Excel'я
#28 by Babay
С помощью 1с++: 1) Подключится к dbf, используя Прямой доступ через ODBC или OLEDB 2) Использовать метод: ВыполнитьИнструкцию(ТекстSQL) Параметры: ТекстSQL - тип: Строка. SQL-выражение. Возвращает: тип: ТаблицаЗначений. Результат запроса в виде таблицы значений. Колонки таблицы значений будут типизированы соответствующими значениями. Описание: выполняет SQL-выражение и возвращает результат в виде таблицы значений. Если результат запроса пустой, то возвращается таблица значений с типизированными колонками. В случае возникновения ошибки, будет сгенерировано исключение с описанием ошибки.
#29 by Babay
Плюс этого метода - использование текста на языке SQL
#30 by FreeFin
А зачем ToySQL и 1С++? Или в виндузях уже отменили что-то типа: Вопрос по-сути: как/какой изящный ТекстЗапроса, с группировкой по индексируемым полям DBF и получением размера в группировке "состряпать" и результат понять/обработать.
#31 by Babay
1
#32 by Babay
Тебе ж надо было СРАЗУ в ТЗ
#33 by Babay
А ты по конкретнее можешь сказать что тебе надо?
#34 by FreeFin
(All) То что мне надо сотворил сам. Как быстро найти дублирующиеся записи в 1sjourn.dbf : Отакот, хлопцы ))) ЗЫ виндузячий драйвер FoxPro эту функцию (having count) не "слопал".
#35 by smaharbA
у меня была задача тока 1С... :)
#36 by FreeFin
А здесь и есть "тока 1С", "Windows" и база/ы в dbf формате. Ни каких "не стандартов" sql-ей, ВК и прочего=нет.) Но работает? ))) Мне оно надо было для быстренькой проверки удаленных баз на эту бяку (я им чо SQL Server ставить буду?). Одна простенькая внешняя обработочка и вопрос снят!
#37 by smaharbA
А я вот стал "исправляться", как неадинэснегом стал :)
#38 by FreeFin
Да ладно (недоверчиво), и не совмещаешь полезное с приятным (кроме пива с...)? Не верю!..неадинэснег...се равно, что матрос без корабля ))) ЗЫ Сам админ, но без адинэса=скучаю )
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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