|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от olesh
![]() Как вариант:
1. Создать таблицу в Аксапте. 2. После синхронизации нужно заменить на SQL сервере эту таблицу вьюхой с тем же именем. 3. Обеспечить автоматическую синхронизацию. 4. Использовать таблицу в лукапе как обычно. Решение абсолютно рабочее в 3.0. Другое дело, стоит ли эта задача такого решения ![]() Интересно как Вы обеспечиваете автоматическую синхронизацию ??
__________________
Александр |
|
![]() |
#2 |
Участник
|
Из Application.dbSynchronize. Перед super() прямым запросом к SQL серверу вьюху удаляем, если она существует. После super() удаляем таблицу и создаем вьюху (+ пустой триггер на insert/update/delete, на всякий случай).
Чтобы не пересоздавать вьюху при каждом вызове dbSynchronize, можно попытаться определить, что наша таблица будет синхронизироваться (есть параметр tableId в dbSynchronize, а также метод SqlSyncPending.tableTouched()). В результате, сейчас у нас не ловится случай только при синхронизации таблицы при импорте проектов, дальше разбираться лень, и так устраивает (после импорта синхронизируем вручную). |
|
|
За это сообщение автора поблагодарили: tolstjak (1). |
![]() |
#3 |
Участник
|
Цитата:
Сообщение от olesh
![]() Из Application.dbSynchronize. Перед super() прямым запросом к SQL серверу вьюху удаляем, если она существует. После super() удаляем таблицу и создаем вьюху (+ пустой триггер на insert/update/delete, на всякий случай).
Чтобы не пересоздавать вьюху при каждом вызове dbSynchronize, можно попытаться определить, что наша таблица будет синхронизироваться (есть параметр tableId в dbSynchronize, а также метод SqlSyncPending.tableTouched()). В результате, сейчас у нас не ловится случай только при синхронизации таблицы при импорте проектов, дальше разбираться лень, и так устраивает (после импорта синхронизируем вручную).
__________________
Александр |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|