powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по MobiLink
14 сообщений из 14, страница 1 из 1
Вопрос по MobiLink
    #34612330
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asa 9.0.2.3496
Можно ли поменять порядок применения Insert'ов в определенную таблицу в upload потоке ?
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34612353
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем? Они же идут в том порядке, в каком данные вносились в таблицу на удаленой базе. Должны идти...
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34612363
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет :)
у меня тут ошибка вылезла
на удаленной БД
insert A(id, parent_id) values (1,null)
insert A(id, parent_id) values (2,1)
insert A(id, parent_id) values (3,2)

в центральной
insert A(id, parent_id) values (1,null)
insert A(id, parent_id) values (3,2) -> ессно генерит ошибку, типа нет ID==2

исправил: FK на parent_id сделал check on commit, работает
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34616231
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил добавить поле в табл. входящую в синхронизацию.
В удаленной БД делаю в ISQL
Код: plaintext
1.
2.
3.
ALTER PUBLICATION pub DROP TABLE A;
ALTER TABLE A add B_ID tFKey null;
ALTER TABLE A ADD FOREIGN KEY FK_B (B_ID) ...;
ALTER PUBLICATION pub ADD TABLE A;

получаю ошибку при синхронизации
Table 'A' has been altered outside of synchronization at log offset XXX

Оказывается DDL объектов синхронизации, нужно всегда делать через sp_hook_dbmlsync_schema_upgrade
однако...
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34620909
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марсельнет :)
у меня тут ошибка вылезла
...
исправил: FK на parent_id сделал check on commit, работаетВчера разговаривал со специалистом из iAnywhere, он утверждает что такого не может быть, потому что Mobilink проверяет внешние ключи и делает соотвествующую сортировку данных. Во всяком случае таков дизайн Mobilink'а.
Опиши ситуацию чуть подробнее. Будем делать кейс :)
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34621305
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм..
для тех таблиц что имеют ссылки типа X.ID - X.Parent_ID, клиент ML при старте говорит

I. 05/28 22:05:01. Tables involved in cycle:
I. 05/28 22:05:01. MSoft.A
I. 05/28 22:05:01. Cycle of foreign key references found. Cannot guarantee referential integrity during upload.

для таких случаев тоже утверждает ?
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34621481
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марсельдля таких случаев тоже утверждает ?Цитирую: "I rest my case"
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34621625
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlОпиши ситуацию чуть подробнее.
А что именно интересует, я те БД удалил уже, без восстановления
Могу из рабочих БД логи надергать с rollback транзакциями от ML, пойдет ?
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34621641
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВчера разговаривал со специалистом из iAnywhere, он утверждает что такого не может быть, потому что Mobilink проверяет внешние ключи и делает соотвествующую сортировку данных. Во всяком случае таков дизайн Mobilink'а.

Интересно, где такое написано в документации.
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34623514
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один вопрос знатокам:
Как запретить попадание в download поток строк, update которых был сделал в тригерах во время предидущей upload транзакции?

ps: синхронизация по timestamp полю
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34624543
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rcryo авторВчера разговаривал со специалистом из iAnywhere, он утверждает что такого не может быть, потому что Mobilink проверяет внешние ключи и делает соотвествующую сортировку данных. Во всяком случае таков дизайн Mobilink'а.
Интересно, где такое написано в документации.Оно действительно не очень легко найти, но это точно написано :) В описании расширеного параметра TOR (TableOrder) в 9-ке и 10-ке есть упоминание что при отсутствии этого параметра ML автоматически возьмет таблицы в порядке внешних ключей.
Исключение составляет FK на саму себя :( Порядок строк в отличие от порядка таблиц не отслеживается....
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34624550
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МарсельЕще один вопрос знатокам:
Как запретить попадание в download поток строк, update которых был сделал в тригерах во время предидущей upload транзакции?
ps: синхронизация по timestamp полюДва варианта:
1) добавляем в таблицу флаг "строка должна уходить на удаленную базу" и ставим его в false для всех строк созданных в триггере
2) ставим last_modified созданой строке более раннее чем время синхронизации. Например last_modified может быть равным last_modified оригинальной записи которая инициировала триггер.
Это кстати ответы почти напрямую из учебника, я их только перевел :)
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34685447
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь использует transaction-level upload (-tu option) в ML?
Есть ли подводные камни?
Написано что ведет себя как примерно как DBRemote. Наверное, если транзакции маленькие.
Замучил меня "неправильный" порядок строк в upload потоке. Если от ошибок на FK можно избавиться, то логические ошибки не исправишь.
...
Рейтинг: 0 / 0
Вопрос по MobiLink
    #34694304
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlДва варианта:
1) добавляем в таблицу флаг "строка должна уходить на удаленную базу" и ставим его в false для всех строк созданных в триггере
2) ставим last_modified созданой строке более раннее чем время синхронизации. Например last_modified может быть равным last_modified оригинальной записи которая инициировала триггер.
Это кстати ответы почти напрямую из учебника, я их только перевел :)
У меня третий вариант: триггер по апдейту только нужных полей,в котором и происходит set last_modified=current timestamp, а дефолтное значение поля last_modified выставляется толкьо при вставке записи.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по MobiLink
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]