|
|
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
Я работаю с IB-6 и самое главное ограничение - нельзя в одной транзакции изменить запись больше 255 раз. Это вроде мелочь и вроде как глупо и не нужно, но если есть родительская таблица и у нее перечень данных. Триггера на изменение перечня автоматически пересчитывают итоговую сумму для родителя по ID. Все прекрасно работает, но если нужно изменить в перечне коэффициент например UPDATE Table SET KF = 2 WHERE ID = ? (а там 300 записей, то на изменение каждой сработает триггер пересчета суммы родителя, а это больше 255 в одной транзакции...) Я не в курсе Firebird или новый IB имеет это ограничение Подскажите кто знает Заранее благодарен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 06:07:00 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
честно говоря не сталкивался с таким, но может обойти это хранимкой? тоесть отказаться от использования триггера? или отказаться от пересчета и считать это когда потребуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 06:47:20 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
Я бы вызывал процедурку, но ведь это недело - чтоб прога сама следила за суммой да еще и не одной и по разным таблицам... К тому же и база развивается (то одно учитывается, то другое... а передавать произвольное количество параметров процедуре вроде как нельзя) Менять процедурку и синхронно менять все exe-шки - не красиво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 08:12:00 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
Хранимкой это несложно обойти - вызывать апдейт не напрямую, а через ХП, и в ней после выполнения апдейта подсчитывать сумму Или запихнуть пересчет суммы в ХП и вызывать ее после апдейта... -- LET`S ROCK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 10:35:09 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
авторЯ работаю с IB-6 и самое главное ограничение - нельзя в одной транзакции изменить запись больше 255 раз. Не существует такого ограничения. Какую точно ошибку возвращает сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 10:50:43 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
авторнельзя в одной транзакции изменить запись больше 255 раз Это относится только к метаданным, да и транзакции тут не причем ... Вообщем Scream правильный дал совет - использовать нужно ХП. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 11:14:33 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
Если пересчет суммы делать после апдейта, то нет гарантии, что прога не потеряет связь с сервером в промежутке между апдейтом и вызовом ХП. (Для того и существуют транзакци) А если апдейт вызывать через ХП - то сегодня у меня 3 поля, завтра 5... и добавив любое поле комментария - я должен его как параметр передавать ХП или делать двойной апдейт - сначала всех некритичных полей, а потом через ХП - расчетных. Например в Парусе все изменения данных сделаны через процедуры - так они только глобально апдейтят базу и прогу не очень часто, а если изменяеш таблицы находу - так даже прогу я не всем заменяю и работают сразу по 4 разных версии и прекрасно себя чувствуют (только старые невидят новых полей, да и не всем это надо...) Лучше скажите у всех клонов InterBase и проч. версионность записей или нет ? Лично мне нафиг ненужно апдейтить 255 раз запись с возможностью их отката. Достаточно было бы хранить только начальное, текущее и новое значение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 11:15:55 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
Проверил на 258 записей... Прошу прощения в шестом InterBase точно нет такого ограничения... Это ограничение я еще из пятого помню, там при описании архитектуры и версионности записей даже пример приводился как в цикле вызвать 256 апдейтов записи для получения ошибки... Я IB заменил на шестой, а доки посмотреть все времени нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 12:12:08 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
-Господа! Кто сказал еп вашу мать?! -Никто вродь... -Ну, знач музыкой навеяло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 12:19:51 |
|
||
|
Помогите с ограничением по многоверсионности записей
|
|||
|---|---|---|---|
|
#18+
>>-Господа! Кто сказал еп вашу мать?!... это Мимопроходящий хотел сказать: "Товарищи! Переходите на Firebird 1.5!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 18:10:02 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32523443&tid=1578620]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
193ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 517ms |

| 0 / 0 |
