Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

корректность вновь сохраненных данных [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]

Это как раз тот случай: "Я сделал одну фишку, а она не работает. В чем моя ошибка"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо