15.05.2008, 08:32 | #1 |
MCITP
|
Включение потабличного RecID в 3-ке
Всем привет!
Многим, наверное, известно, что в 3.0 есть "полунедокументированная" возможность включить генерацию потабличного RecId вместо "покомпанийного". До вчерашнего дня я тоже знал, но сам не пробовал. Но т.к. проблема recId для клиента потенциально скоро встанет серьёзно, то решил попробовать прикрутить эту фичу. (Не как альтернативу 4-ке, а просто ) Делаю всё как описано в имеющемся описании - меняю 6-ой бит на 7-ой в системной переменной INDEX. Всё перезапускаю, и о чудо! Действительно Аксапта резко начинает клепать в таблицу SystemSequences потабличные записи для последовательностей RecId. Круто, думаю, это ж можно сразу решить все проблемы с рекИД. Одна проблема, что придётся вручную генерить записи для всех таблиц, чтоб проставить NEXTVAL в значение текущего для компании, чтоб избежать пересечений. А то аксапта создаёт новые с 1-цы. Естественно, всё это время в голове жужжало одно - почему я нигде и никогда не слышал о том, что кто-то это реально использовал? Все только знают, что "типа можно". А реально единственная альтернатива - переход на 4-ку. И скоро стало понятно почему! Потому что ядро нормально генерит только инсерты для этой таблицы! А update остаётся старый! Код: UPDATE SYSTEMSEQUENCES SET NEXTVAL=:in1 WHERE ((SUBSTR(NLS_LOWER(DATAAREAID),1,3)=NLS_LOWER(:in2)) AND (ID=:in3)) Соответсвенно, мы ничего не выигрываем, только записей больше. Вообщем интересует вопрос, это специально так сделано? Или может кому-то удалось всё-таки завести эту систему? У меня тут были мысли, что может на первых версиях 3-ки это и работало, но потом в ролапе, например, очередном эту возможность закрыли, чтоб все на 4-ку перебегали, а не этим способом пользовались. Реально то ведь всё работает кроме одного апдэйта - очень похоже на сознательное действие. Надо будет как-нибудь в свободное время попробовать поставить аксапту без СП и КР и проверить.... Я проводил описаный тест на Ах3.0 сп3 кр3 + Оракл.
__________________
Zhirenkov Vitaly |
|