powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с ограничением по многоверсионности записей
11 сообщений из 11, страница 1 из 1
Помогите с ограничением по многоверсионности записей
    #32523117
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я работаю с IB-6 и самое главное ограничение - нельзя в одной транзакции изменить запись больше 255 раз.
Это вроде мелочь и вроде как глупо и не нужно, но если есть родительская таблица и у нее перечень данных. Триггера на изменение перечня автоматически пересчитывают итоговую сумму для родителя по ID. Все прекрасно работает, но если нужно изменить в перечне коэффициент
например UPDATE Table SET KF = 2 WHERE ID = ? (а там 300 записей, то на изменение каждой сработает триггер пересчета суммы родителя, а это больше 255 в одной транзакции...)
Я не в курсе Firebird или новый IB имеет это ограничение

Подскажите кто знает
Заранее благодарен...
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523128
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
честно говоря не сталкивался с таким, но может обойти это хранимкой?
тоесть отказаться от использования триггера?
или отказаться от пересчета и считать это когда потребуется?
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523168
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы вызывал процедурку, но ведь это недело - чтоб прога сама следила за суммой да еще и не одной и по разным таблицам...

К тому же и база развивается (то одно учитывается, то другое... а передавать произвольное количество параметров процедуре вроде как нельзя)

Менять процедурку и синхронно менять все exe-шки - не красиво...
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523345
Scream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранимкой это несложно обойти - вызывать апдейт не напрямую, а через ХП, и в ней после выполнения апдейта подсчитывать сумму

Или запихнуть пересчет суммы в ХП и вызывать ее после апдейта...

--
LET`S ROCK!
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523380
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ работаю с IB-6 и самое главное ограничение - нельзя в одной транзакции изменить запись больше 255 раз.

Не существует такого ограничения. Какую точно ошибку возвращает сервер?
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523443
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторнельзя в одной транзакции изменить запись больше 255 раз
Это относится только к метаданным, да и транзакции тут не причем ...
Вообщем Scream правильный дал совет - использовать нужно ХП.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523451
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пересчет суммы делать после апдейта, то нет гарантии, что прога не потеряет связь с сервером в промежутке между апдейтом и вызовом ХП.
(Для того и существуют транзакци)

А если апдейт вызывать через ХП - то сегодня у меня 3 поля, завтра 5...
и добавив любое поле комментария - я должен его как параметр передавать ХП или делать двойной апдейт - сначала всех некритичных полей, а потом через ХП - расчетных.

Например в Парусе все изменения данных сделаны через процедуры - так они только глобально апдейтят базу и прогу не очень часто, а если изменяеш таблицы находу - так даже прогу я не всем заменяю и работают сразу по 4 разных версии и прекрасно себя чувствуют (только старые невидят новых полей, да и не всем это надо...)

Лучше скажите у всех клонов InterBase и проч. версионность записей или нет ?
Лично мне нафиг ненужно апдейтить 255 раз запись с возможностью их отката.
Достаточно было бы хранить только начальное, текущее и новое значение...
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523625
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил на 258 записей...
Прошу прощения в шестом InterBase точно нет такого ограничения...

Это ограничение я еще из пятого помню, там при описании архитектуры и версионности записей даже пример приводился как в цикле вызвать 256 апдейтов записи для получения ошибки...

Я IB заменил на шестой, а доки посмотреть все времени нет...
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32523648
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Господа! Кто сказал еп вашу мать?!
-Никто вродь...
-Ну, знач музыкой навеяло...
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32524678
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>-Господа! Кто сказал еп вашу мать?!...

это Мимопроходящий хотел сказать:
"Товарищи! Переходите на Firebird 1.5!"
...
Рейтинг: 0 / 0
Помогите с ограничением по многоверсионности записей
    #32524688
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ашибаисси. Я сказал именно то, что хотел сказать.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с ограничением по многоверсионности записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]