Subject Re: [IBO] "object %o is in use"-Error because of CacheStatementHandles (firebird 2.0.1)
Author Andreas Filsinger
Helen wrote ...

>
> No, the last statement fails because you have a cursor open on the
> table you are trying to drop. - that's what is meant by "Object in
Use".
>
> Helen
>

Hi Helen,

No, sorry, but its not me having the cursor still open - its IBO. To
populate the table i do (symbolic code):

q := TIB_Query.create(nil);
with q do
begin
sql.add('select RID from %o for update');
for n := 0 to pred(list.count) do
begin
insert;
Fields[0].AsInteger := list[n];
post;
end;
end;
q.free;

the produced log is:

http://orgamon.org/SQL.log.true.txt

this symbolic code above happens in the log from line 119 to 180. The
q.free should do a "close" or somesthing but it doesnt.

It has something do to with the "handle" that still is valid. With
CacheStatementHandles=false there are two additional "DEALLOCATE
STATEMENT"s - this make firebird 2.0.1 happy. Here is the successfull
Log:

http://orgamon.org/SQL.log.false.txt

(Lines 210+215)

--> IBO should handle the "IB_Query.free" in that way that there isn't
something left, responsible for the impossibility doing further
operations.

Thanks for your support!

Andreas