![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
корректность вновь сохраненных данных [D6, IB6.x]
avgur © (2004-06-10 15:29:00)ВЫДЕРЖКА из другого форума:
> Имеется кешированный датасет (TQuery). Открываем транзакцию методом StartTransaction компонента TDatebase. После сохранения в базу методом ApplyUpdate (компонента TQuery) запускается хранимая процедура, которая проверяет корректность вновь сохраненных данных. В определенном случае(сохранены неверные данные) процедура возвращает код ошибки - делается
откат транзакции RollBack компонента TDatebase.
Как эту процедуру организовать, подскажите ....
Курдль (2004-06-10 17:06:00) [1]В любом случае - это лишь наши с Вами теоретические изыскания :)
Автор-то нам не шибко помогает.
Я, как и Соловьев © (10.06.04 16:19) [7], склонен считать, что ХП - не очень удачное место для проверки данных.
Начинать надо на клиенте, потом - средствами СУБД (ключами, индексами, констрэйнтами, потом уж триггерами).
Sandman25 (2004-06-10 17:01:00) [2][9] Курдль © (10.06.04 16:33)
Я почему-то подумал, что хранимая процедура запускается в другом соединении. Наверное, зря я так подумал. Вы правы.
Курдль (2004-06-10 16:36:00) [3]Внутри одной тразнакции все изменения доступны тому, кто ее открыл(или в IB это не так?)
Соловьев (2004-06-10 16:34:00) [4]
> Внутри одной транзакции все доступно.
внутри какой транзакции, и кому доступны?
Курдль (2004-06-10 16:33:00) [5]
> Sandman25 © (10.06.04 16:27) [8]
> Пока транзакция не подтверждена, записи недоступны для обычного
> read commited.
Внутри одной транзакции все доступно.
Sandman25 (2004-06-10 16:27:00) [6][4] Курдль © (10.06.04 16:04)
Пока транзакция не подтверждена, записи недоступны для обычного read commited.
Соловьев (2004-06-10 16:19:00) [7]А почему такую логику нельзя в триггере сделать? зачем ХП?
Johnmen (2004-06-10 16:16:00) [8]>Как эту процедуру организовать, подскажите ....
Примерно так:
1. Получаем значения вх.параметров
2. Анализируем их на корректность.
3. В случае некорректности генерим ексепшн.
:)))
bushmen (2004-06-10 16:14:00) [9]А целиком постановку задачи можно прочитать?
Курдль (2004-06-10 16:04:00) [10]
> У процедуры должнен быть Isolation level = dirty read
Зачем?
Sandman25 (2004-06-10 16:01:00) [11]У процедуры должнен быть Isolation level = dirty read
bushmen (2004-06-10 15:57:00) [12]>Открываем транзакцию методом StartTransaction компонента >TDatebase. После сохранения в базу методом ApplyUpdate
По-моему, какая-то каша у Вас в голове.
Курдль (2004-06-10 15:34:00) [13]Это как раз тот случай: "Я сделал одну фишку, а она не работает. В чем моя ошибка"?