Discussion:
DOA - SavePoint
(слишком старое сообщение для ответа)
Janny
2003-10-19 07:10:43 UTC
Permalink
Всем добрый день!

Может кто-нибудь подскажет, можно ли отключить в ДОА неявные (внутренние
SavePoint )? Несколько-ступенчатые транзакции не работают при распределенной
БД в Оракле, а ДОА делает это практически при всех операциях...

=============
С уважением,
Самородова Евгения
Pavel Pimenov
2003-10-19 07:50:27 UTC
Permalink
Sun Oct 19 2003 11:10, Janny wrote to All:

J> From: "Janny" <***@billing.ru>
J> Может кто-нибудь подскажет, можно ли отключить в ДОА неявные (внутренние
J> SavePoint )? Hесколько-ступенчатые транзакции не работают при
J> распределенной БД в Оракле, а ДОА делает это практически при всех
J> операциях...

Внутринности DOA разрешают "трогать"? :)
Имхо для понятности лучше добавить свой явный флаг.
Вот в эти места:

procedure TOracleDataSet.Lockpoint;
begin
if LogChanges then Exit;
if not ((Session.POLite and not Session.POLite35) or Session.AutoCommit)
then
begin
OpenDMLQuery(False);
DMLQuery.Clear;
DMLQuery.SQL.Text := 'savepoint DOA__LOCKPOINT';
DMLQuery.Execute;
end;
// Session.Savepoint('DOA__LOCKPOINT');
end;

procedure TOracleDataSet.RollbackToLockpoint;
begin
if LogChanges then Exit;
if not ((Session.POLite and not Session.POLite35) or Session.AutoCommit)
then
begin
OpenDMLQuery(False);
DMLQuery.Clear;
DMLQuery.SQL.Text := 'rollback to savepoint DOA__LOCKPOINT';
DMLQuery.Execute;
// Session.RollbackToSavepoint('DOA__LOCKPOINT');
end else begin
if CommitOnPost then Session.Rollback;
end;
end;

~PPA() {} //
Janny
2003-10-19 09:15:26 UTC
Permalink
Post by Pavel Pimenov
J> Может кто-нибудь подскажет, можно ли отключить в ДОА неявные
(внутренние
Post by Pavel Pimenov
J> SavePoint )? Hесколько-ступенчатые транзакции не работают при
J> распределенной БД в Оракле, а ДОА делает это практически при всех
J> операциях...
Внутринности DOA разрешают "трогать"? :)
На самом деле вопрос был в том, можно ли это исправить, по-прежнему
используя ДОА. То бишь не переписывая их :( Как обычно - а вдруг?... ;)

=============
С уважением,
Самородова Евгения
Pavel Pimenov
2003-10-19 09:08:54 UTC
Permalink
Post by Pavel Pimenov
J> SavePoint )? Hесколько-ступенчатые транзакции не работают при
J> распределенной БД в Оракле, а ДОА делает это практически при всех
J> операциях...
Внутринности DOA разрешают "трогать"? :)
J> Hа самом деле вопрос был в том, можно ли это исправить, по-прежнему
J> используя ДОА. То бишь не переписывая их :( Как обычно - а вдруг?... ;)

Есть OnApplyRecord, никогда это не делал, но возможно через
него получится отсечь.

И добавить флаг - это не переписывать ДОА, а просто немного
подправить его под себя. :)
В случае статической линковке ничего в этом страшного нет...

p.s.
А можно подронее как выглядят проблемы c SavePoint-ами в распределенной БД?
Почему у нас работает?

~PPA() {} //
Janny
2003-10-30 10:37:54 UTC
Permalink
Post by Pavel Pimenov
J> Hа самом деле вопрос был в том, можно ли это исправить, по-прежнему
J> используя ДОА. То бишь не переписывая их :( Как обычно - а вдруг?...
;)
Post by Pavel Pimenov
И добавить флаг - это не переписывать ДОА, а просто немного
подправить его под себя. :)
Один символ или 100 - это все равно переписывание, в том смысле, что
переписывание - это затруднение перехода на следующие версии ;))
Post by Pavel Pimenov
А можно подронее как выглядят проблемы c SavePoint-ами в распределенной
БД?
Post by Pavel Pimenov
Почему у нас работает?
Выяснилось, что проблемы были в серверной(!) части при коннекте через
dblink. А в дельфовской части не влияет. Так что вопрос снялся, остался
только "тетеритически" ;)

=============
С уважением,
Самородова Евгения

Loading...