88 |
|
FAttachments: array of IAttachment; {Keep reference to attachment - ensures |
89 |
|
attachment cannot be freed before transaction} |
90 |
|
FTransactionName: AnsiString; |
91 |
+ |
FForeignHandle: boolean; |
92 |
|
procedure CheckHandle; |
93 |
|
function GetActivityIntf(att: IAttachment): IActivityMonitor; virtual; abstract; |
94 |
|
function GetJournalIntf(Attachment: IAttachment): IJournallingHook; |
314 |
|
intf: IUnknown; |
315 |
|
user: ITransactionUser; |
316 |
|
begin |
317 |
< |
if InTransaction then |
317 |
> |
if InTransaction and not FForeignHandle then |
318 |
|
begin |
319 |
|
for i := 0 to InterfaceCount - 1 do |
320 |
|
begin |
343 |
|
begin |
344 |
|
if not GetInTransaction then Exit; |
345 |
|
|
346 |
+ |
if FForeignHandle then |
347 |
+ |
IBError(ibxeTransactionNotOwned,[nil]); |
348 |
+ |
|
349 |
|
SetLength(TransactionEndNeeded,Length(FAttachments)); |
350 |
|
TransactionID := GetTransactionID; |
351 |
|
for i := 0 to Length(FAttachments) - 1 do |
428 |
|
begin |
429 |
|
if not GetInTransaction then Exit; |
430 |
|
|
431 |
+ |
if FForeignHandle then |
432 |
+ |
IBError(ibxeTransactionNotOwned,[nil]); |
433 |
+ |
|
434 |
|
SetLength(TransactionEndNeeded,Length(FAttachments)); |
435 |
|
TransactionID := GetTransactionID; |
436 |
|
for i := 0 to Length(FAttachments) - 1 do |