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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

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

Сообщение galover »

Вот если бы было обращение к полям которых нет, тогда ошибка понятна и естественна, но тут обратный случай. Подозреваю, что как раз контрольная сумма и влияет. Вообще когда ошибка выходит? При компиляции или уже в ран-тайме? В любом случае, нужно попробовать добавить поле lot-ом в чистой БД. В Галактике все проверяется только методом проб и ошибок.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение 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.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

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

Сообщение galover »

Да все я понял о чем речь, я тебе про другое говорю. Я говорю о том, что если бы не было изменения контрольной суммы, то контрольная сумма для типа TKatMC_p, возможно, взялась бы от таблицы KatMC. Я не знаю механизма расчета контрольной суммы в Галактике, но как предположение в качестве бреда - для типов record as table контрольная сумма берется от соответствующей таблицы (KatMC в данном случае), а не рассчитывается по какому-то алгоритму, если бы было просто record. Поэтому и написал, что нужно проверять для случая, когда контрольная сумма не менялась.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Vik »

А почему есть подозрения, что при добавлении поля в саппорте пересчитывается КС словаря? Если выполняется именно тот скрипт, что генерируется, то никаких alter dictionary и обнуления КС не выполняется.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

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

Сообщение galover »

:hz: Но лучше системные вещи в support не делать, я себе это за правило взял. Что касается изменения таблиц без пересчета контрольной суммы, то крюгер пишет что все будет бодрячком (он даже ветку форума закрепил и написал пафосное - "это должен знать каждый"). Но если честно не больно-то я ему доверяю, уж больно часто он сливает. Так что только пробовать и остается. Мне самому это интересно, были планы по изменению таблиц, но теперь наверное откажусь.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Сообщение Алексей »

а что делать если словарь уже изменен (добавлены свои таблицы и поля в стандартные) и контрольная сумма словаря обнулена? :)
Ответить