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

Вниз

ODAC, SAVEPOINTs   Найти похожие ветки 

 
sts   (2003-04-25 12:37) [0]

Использую для доступа к oracle ODAC.
Кидаю на форму, грид, OraSession, OraQuery - связываю их между собой. Еще 2 кнопки c обработчиками :

procedure TForm1.Button1Click(Sender: TObject);
begin
OraSQL1.SQL.Text := "SAVEPOINT Q";
OraSQL1.Execute;
// OraSession1.Savepoint("Q");
// OraSession1.ExecSQL("SAVEPOINT Q",[]);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OraSQL1.SQL.Text := "ROLLBACK TO SAVEPOINT Q";
OraSQL1.Execute;
// OraSession1.RollbackToSavepoint("Q");
// OraSession1.ExecSQL("ROLLBACK TO SAVEPOINT Q",[]);
end;

Запускаю приложение. Нажимаю Button1 потом Button2. Все хорошо. Создается savepoint и откат работает.

Далее нажимаю button1, редактирую данные в гриде, нажимаю button2 и получаю ошибку "ORA-01086: savepoint "Q" never established".
Почему ?
Все те же самые команды в Developer-е проходят.
Где моя ошибка (или чужая) ?


 
Yuvich ©   (2003-04-25 13:49) [1]

Ошибка в том, что после редактирования грида происходит соммит ( у OraQuery стоит Автокоммит по умолчанию), а после комита все savepoint"ы становятся не активными.

Что бы работала Ваша конструкция, надо брать управление транзакцией на себя:
- снять AutoCommit с OraQury
- делать Commit или Rollback самому


 
sts   (2003-04-25 15:03) [2]

спасибо



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
14-59940
Grrey
2003-04-30 14:42
2003.05.19
Куда пропали уроки Юрия Зотова?


4-59998
DelphiN!
2003-03-21 12:15
2003.05.19
Как узнать handle текущего элемента и окна(имеющего фокус)


14-59868
SPeller
2003-04-28 12:08
2003.05.19
Задача


3-59607
Rise
2003-04-25 14:58
2003.05.19
DBGrid и Fileds?


14-59931
RelakS
2003-04-28 22:14
2003.05.19
Хорошие форумы по VC++