Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Транзакции   Найти похожие ветки 

 
Наташа ©   (2003-01-22 13:14) [0]

Мастера Dephi Просветите пожалуйста. Использую компонент IBDataBase, IBTransaction и несколько IBQuery. Для работы приложения достаточно одного компонента IBTransaction? и если нужно больше , то для чего?
И второй вопрос. При запуске приложения обновляю таблицу следующим образом
IBTransaction.StartTransaction
try
Вызов ХП по модификации д-х в таблице
IBTransaction.Commt
except
IBTransaction.Rollback
Raise;
End;
Затем отрываю набор д-х (Select * from Price)
При повторном обращении к ХП сообщает , что транзакция активна. Почему?
Никаких действий с другими наборами д-х больше не делаю.


 
Наталия ©   (2003-01-22 14:25) [1]

Количество транзакций - дело вкуса. Я обычно делаю одну на чтение, другую на изменение записей. на www.ibase.ru почитай про них.


 
Mihas ©   (2003-01-22 14:31) [2]

Так как в момент открытия компонента TIBTransaction автоматически стартует связанная с ним транзакция. Только после этого можно открывать какие-то наборы данных. Посколку транзакции не могут быть вложенными, такой фрагмент будет ошибочным !
Делай так :
Вызов ХП по модификации д-х в таблице
TIBxxxx.Post;
//IBTransaction.StartTransaction !!! Ошибка! транзакция уже
стартовала
if IBTransaction.Active = False then
IBTransaction.StartTransaction;
try
IBTransaction.Commt //или CommitRetaining
except
IBTransaction.Rollback //или RollbackRetaining
End;

IBTransaction.CommitRetaining и IBTransaction.RollbackRetaining я использую для IB6, так как после этого не нужно переодкрывать связанные с транзацией наборы данных, и тебе советую :)
Я вставляю такой код во всех компонентах в котых можно редактировать данные в AfterPst и все работает чудно !
Пример:
procedure TDM.TIBQuery1AfterPost(DataSet: TDataSet);
begin
try
IBTransaction1.CommitRetaining;
except
IBTransaction1.RollbackRetaining;
end;
end;
Успехов тебе !



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
1-15671
x02x
2003-01-29 20:01
2003.02.06
Люди, подскажите как можно сделать кнопку, другой формы(например.


14-15923
bis
2003-01-20 10:36
2003.02.06
И это называется поиск???


1-15598
SergeN
2003-01-29 10:05
2003.02.06
Сомпоненты


1-15602
Jaxtor
2003-01-29 10:44
2003.02.06
ComboBox и Button


3-15510
Max_
2003-01-18 13:58
2003.02.06
Индексированное поле