Показать сообщение отдельно
Старый 14.01.2021, 08:18   #40  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от trud Посмотреть сообщение
Ну это будут изменения за последнюю минуту по которым завершилась транзакция в момент запуска данного запроса. Также могут быть изменения за конкретно эту же минуту по которым транзакция еще не завершилась, они появятся позже, как она завершится. Как предлагаете их искать?
можно сохранять время запуска последней репликации в отдельной выделенной для этого табличке как у нас, т.е принцип такой :

1) запоминаем время запуска текущей репликации startDateTime = DateTimeUtil::utcNow()
2) достаем из таблички дату-время запуска последней репликации = lastDateTime
3) пошла репликация:
X++:
while select SysDatabaseLog order by createdDateTime
        where SysDatabaseLog.createdDateTime >= lastDateTime
        && (SysDatabaseLog.table    == tableNum(custTable)
            ||  SysDatabaseLog.table    == tableNum(DIRPARTYLOCATION)
            ||  SysDatabaseLog.table    == tableNum(LOGISTICSELECTRONICADDRESS))
    {
    }
4) сохраняем в табличке дату-время запуска текущей репликации startDateTime

PS: А меняя в этой табличке дату-время запуска последней репликации можно управлять интервалом минута, месяц, год и т.д.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 14.01.2021 в 08:26.