Предыдущее сообщение можно игнорировать. Анализ логики показал, что ее можно сильно упросить, совсем уйдя от переборов.
Точнее не так: переборы будут нужны только для формирования sql-запросов, которые уже будут проводить и анализ зависимостей и сам перенос.
Но возникает вопрос: Как в 1sqlite выполнить несколько insert'ов для одной строки select'а?
Вопрос звучит не совсем понятно. Хочу сделать что-то аналогичное FireBird'ному "for select", т.е. что-то типа
declare variable f1 varchar(9);
declare variable f2 varchar(9);
for select f1, f2 from t0 into f1, f2 do begin
insert into t1 values(f1);
insert into t1 values(f2);
end
Поясню, что я хочу добиться: при помощи 1sqlite я получаю идентификаторы всех доков, на которые есть ссылки в переносимых в другую базу. И когда в таблице всего одно поле ссылается на документ, тогда эта логика не важна, но если полей несколько, то приходится повторять почти одинаковый запрос несколько раз ... если описаная проблема решаема, то можно будет одним запросом получить сразу все поля ссылок на доки.
P.S.: Думаю, не надо пояснять, почему именно 1sqlite, а не OLEDBData с VFPOLEDB: индексы 1С такие "умные", что задача построения запроса с попаданием на них с учетом наличия пустых полей и полей с нефильтруемыми значениями для меня оказалась слишком сложной.
Самый простой пример: запрос переноса непериодических констант выполняется 2 минуты, а запрос переноса всей периодики, включая константы, - чуть более 10 секунд, а причина в том, что в первом случае нет условия на дату (пробовал ставить < и is null, но это не повлияло), и дополнительно есть условие IN, которого нет во втором случае.