Страница 2 из 2

Re: Изменение словаря, чем грозит.

Добавлено: 18 окт 2010, 18:28
galover
Вот если бы было обращение к полям которых нет, тогда ошибка понятна и естественна, но тут обратный случай. Подозреваю, что как раз контрольная сумма и влияет. Вообще когда ошибка выходит? При компиляции или уже в ран-тайме? В любом случае, нужно попробовать добавить поле lot-ом в чистой БД. В Галактике все проверяется только методом проб и ошибок.

Re: Изменение словаря, чем грозит.

Добавлено: 18 окт 2010, 19:41
Vik
То ли я не правильно объясняю, то ли вы меня не так поняли.Возьмем один из методов объектного интерфейса:

Код: Выделить всё

function KatMC_Default (var _wMC  : TKatMC_p;      
                        isMessErr : boolean 
                        )         : boolean;
Видим, что в методе используется тип TKatMC_p. Смотрим, что за тип такой (определяется в этом же файле!) :

Код: Выделить всё

Type TKatMC_p = Record as table KatMC with x$position;
Очевидно, что в моем случае TKatMC_p отличается от TKatMC_p, который определен в L_MCU. Соответственно, отличается и объектный интерфейс. Соответственно отличается и контрольная сумма. Я вижу ситуацию так и ошибка мне кажется вполне понятной и естественной, даже если мы к новому полю тут нигде не обращаемся ). Ошибка проявляется как обычно - при первом обращении к методу объекта oObjMc.

Re: Изменение словаря, чем грозит.

Добавлено: 18 окт 2010, 20:08
galover
Да все я понял о чем речь, я тебе про другое говорю. Я говорю о том, что если бы не было изменения контрольной суммы, то контрольная сумма для типа TKatMC_p, возможно, взялась бы от таблицы KatMC. Я не знаю механизма расчета контрольной суммы в Галактике, но как предположение в качестве бреда - для типов record as table контрольная сумма берется от соответствующей таблицы (KatMC в данном случае), а не рассчитывается по какому-то алгоритму, если бы было просто record. Поэтому и написал, что нужно проверять для случая, когда контрольная сумма не менялась.

Re: Изменение словаря, чем грозит.

Добавлено: 19 окт 2010, 10:43
Vik
А почему есть подозрения, что при добавлении поля в саппорте пересчитывается КС словаря? Если выполняется именно тот скрипт, что генерируется, то никаких alter dictionary и обнуления КС не выполняется.

Re: Изменение словаря, чем грозит.

Добавлено: 19 окт 2010, 12:05
galover
:hz: Но лучше системные вещи в support не делать, я себе это за правило взял. Что касается изменения таблиц без пересчета контрольной суммы, то крюгер пишет что все будет бодрячком (он даже ветку форума закрепил и написал пафосное - "это должен знать каждый"). Но если честно не больно-то я ему доверяю, уж больно часто он сливает. Так что только пробовать и остается. Мне самому это интересно, были планы по изменению таблиц, но теперь наверное откажусь.

Re: Изменение словаря, чем грозит.

Добавлено: 19 окт 2010, 12:55
Алексей
а что делать если словарь уже изменен (добавлены свои таблицы и поля в стандартные) и контрольная сумма словаря обнулена? :)