16.07.2003, 16:00 | #1 |
Участник
|
Как отключить синхронизацию?
Господа!
Может быть комуто вопрос покажется смешным, но можно ли каким либо образом запретить синхронизацию по произвольному объекту? Вопрос интересует сугубо в исследовательских целях. Можно переформулировать: как аксапта решает что ей надо синхронизировать а что нет? |
|
16.07.2003, 16:05 | #2 |
Moderator
|
Цитата:
Можно переформулировать: как аксапта решает что ей надо синхронизировать а что нет?
Цитата:
каким либо образом запретить синхронизацию по произвольному объекту?
|
|
16.07.2003, 16:07 | #3 |
Moderator
|
Цитата:
каким либо образом запретить синхронизацию по произвольному объекту ?
|
|
16.07.2003, 16:28 | #4 |
Участник
|
Мне надо чтобы аксапта не лезла на SQL сервер и не меняла там ничего.
На сервере я и сам всё поменяю как надо Речь идёт о view. Хочу подменить скрипт сформированный аксаптой на свой. С той же структурой возвращаемых результатов. Соотвествнно никаких ошибок. Вот только мой скрипт будет жить до первой синхронизации |
|
16.07.2003, 16:35 | #5 |
Moderator
|
Цитата:
Хочу подменить скрипт сформированный аксаптой на свой. С той же структурой возвращаемых результатов.
Одинаковый скрипт -> одинаковая структура. p.s. view в Аксапте только на чтение. |
|
16.07.2003, 16:46 | #6 |
Участник
|
\Classes\Application\dbSynchronize
вставляй проверку на tableid Но это работает не всегда, те можно синхронизить не через меню, и это не сработает и твои настройки в сиквеле слетят. Для начала раскопок самое то - наслаждайся |
|
16.07.2003, 16:51 | #7 |
Участник
|
Предпосылка - нужен хитрый отчёт.
Создаём произвольный скрипт на SQL используя всё что можно использовать при создании View, в том числе, например, union. Создаём таблицу из аксапты со структурой соответствующей результату запроса. Данных там в общем то и не будет никаких. Создаём примитивный Query по этой таблице, без всяких условий. Создаём View по Query, синхронизаруем. Аксапта создаёт View на сервере соответвенно примитивный. Далее лезем на сервер и переопределям View по своему ранее созданному скрипту. Окрываем View из аксапты - видим свои данные. Вот только при первой же синхронизации аксапта снова сгенерит свой скрит и запихнёт его на сервер. |
|
16.07.2003, 16:55 | #8 |
Участник
|
запрети синхронизацию выбраных таблиц по их tableID
Ты с этого и начал спрашивать |
|
16.07.2003, 17:14 | #9 |
Участник
|
А как это сделать?
Снал бы - не спрашивал |
|
16.07.2003, 17:21 | #10 |
Участник
|
\Classes\Application\dbSynchronize
код посмотри и ответ напросится сам ифоф напихай, ну я не знаю... написал ведь (см выше) |
|
16.07.2003, 18:01 | #11 |
Moderator
|
Цитата:
\Classes\Application\dbSynchronize
BOAL спасибо. |
|
16.07.2003, 18:56 | #12 |
Участник
|
В общем поискал я мета где используется метод dbSynchronize() да и на него.
Мало утешительного. В качестве TableId туда в большинстве случае передаётся 0, что означает синхронизацию всех таблиц. Конкретный TableId похоже туда передаьтся только при использовании формы SQL администрирования, если же просто вызывать синхронизацию из дерева AOT, даже по конкретной таблице, то туда передаётся 0. Я так понимаю xApplication сам понимает что ему надо синхронизировать... В общем случае в этом методе TableId таблицы неизвестен. Как и откуда вызывается синхронизация в AOT - непонтяно. Можно конечно при получении там 0 самомму бежать по списку таблиц и руками вызвать у них синхронизацию за исключением нужной, но этож криво. Попробую ещё покапать... |
|