Вход | Регистрация

Форумы на Кубань.Ру


1С:Предприятие ::

Метки: 

Одновременное перемещение по 2-м базам DBF

Ø
Я
   Птенец
09.11.00 - 14:47
Черепуху себе сломал. Имеем две базы DBF.  Каждой записи из первой
соответствует несколько из второй. Как организовать перемещение по второй
по соответствующим записям первой без перебора всех записей базы?
Пытался так:
Пока DBF.НайтиПоКлючу(0)=1  Цикл
КонецЦикла;
находит, но почему-то зацикливается!
 
  Рекламное место пустует
   BigHarry
1 - 09.11.00 - 15:08
Попробуй так
DBF.НайтиПоКлючу(знач);
Пока DBF.Поле =  знач цикл
     //*********************
     DBF.Next();
КонецЦикла;
А вааще - брось извращаться - 1С - это тебе не Фокс, релейшены тут не отстроишь.
   Птенец
2 - 09.11.00 - 15:37
Проверил.Выдергивает только 1 запись из второй базы. Дело не в извращениях,
а в скорости обработки. Не очень хотелось бы по полдня загрузкой
данных заниматься!
   BigHarry
3 - 09.11.00 - 16:08
Во второй базе текущий индекс должен быть тот, с которым работает поиск.
   Птенец
4 - 09.11.00 - 16:48
Есть ясно дело, а иначе бы и не искал по ключу!
   Dag
5 - 09.11.00 - 17:37
Я делал такую штуку. Вот куски кода, если что не понятно, расскажу:
//PriceLot - это "вторая" таблица, в которой мы отбираем все значения = переменной РубПрайсКод, после чего можно ходить перебором, а можно искать по LabGoods - это код. Несколько сумбурно, но совсем нет времени
PriceLot.ДобавитьИндекс("IDX_","LABGOODS",1,0,"(LABPRC="""+РубПрайсКод+""")");
PriceLot.СоздатьИндексныйФайл(Каталог+"\PriceLot.cdx");
PriceLot.ТекущийИндекс("IDX_");
   BigHarry
6 - 09.11.00 - 18:02
Тады х/з...
Попробуй вместо НайтиПоКлючу() команду Найти().
   Птенец
7 - 09.11.00 - 18:10
Строится индекс внутри цикла перебора первой базы?
//************************************************
Попытка
 ВходDBFСтроки.ДобавитьИндекс("IDX_","REGN",1,0,""+ВходDBFЗаголовок.REGN);
 ВходDBFСтроки.СоздатьИндексныйФайл("inf.cdx");
Исключение
 Предупреждение("Ошибка - "+ОписаниеОшибки());
 СтатусВозврата(0); Возврат;
КонецПопытки;
ВходDBFСтроки.ТекущийИндекс("IDX_");//*******************************************************
где, REGN - числовое поле, связывающее две базы.
Далее, как в (0)//*******************************************************
Пока ВходDBFСтроки.НайтиПоКлючу(0)=1 Цикл
КонецЦикла;//********************************************************
но все равно циклится ! Или я что-то не понял?
   BigHarry
8 - 09.11.00 - 18:17
Команда НайтиПоКлючу() позиционирует указатель на искомой записи !!!
Дальше должен идтит обычный перебор, командой Next() перемещаешь указатель на след. запись.
В общем - смотри № 1
   Птенец
9 - 09.11.00 - 18:23
BigHarry, дорогой, брось ты это дело! Спасибо за помощь, но
мне нужен чел, кто это уже борол!
   BigHarry
10 - 09.11.00 - 18:36
Я борол - и поборол.
Конструкцию
-----------------------------
Пока ВходDBFСтроки.НайтиПоКлючу(0)=1 Цикл
КонецЦикла;
-----------------------------
всегда будет клинить, так как указатель в базе дрочится постоянным позиционированием на одну и ту-же запись.
Повторяю - см. солюшн № 1
 
  Рекламное место пустует
   Dich
11 - 09.11.00 - 18:55
Эй, Птенец, Большой Гарри!!! Тут недавно сравнительно на Бургу (Unleaded, по моему) была выложена технология доступа к ДБФ таблицам через АДО. Используйте обычные SELECT и забудьте о кошмаре, почему-то громко именуемом объектом ХBASE :))))
   Птенец
12 - 09.11.00 - 19:18
Что есть такое "знач" у тебя в (1)? В "синтаксе": может принимать
значение от 1 до -2 и усе! Да и проверял я вроде (2).
   Птенец
13 - 10.11.00 - 10:05
Поднял - должно, я чую, быть решение!



Список тем форума

Форум Территория 1С

Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует