Colin Brown
Member
Hi
I have created a package in Oracle 9i that contains:
procedure xyz (p_cursor in out ref_cursor)
as
begin
open p_cursor for
select
t.sqid
from
table_t t
where
(systimestamp - t.last_contact) > interval '1' minute;
end;
where ref_cursor is defined in the header as a ref cursor:
type ref_cursor is ref cursor;
procedure xyz (p_cursor in out ref_cursor);
and used the wizard to create the Delphi interface.
Elsewhere in my application I have:
fPackage.xyz (fQuery);
fQuery.Execute;
while not fQuery.Eof do begin
MyQueue.Add(fQuery.Field('SQID'));
end;
The query is continually returning the first sequential identifier ad infinitum (even though the Oracle Monitor shows only six rows returned as expected).
Has anyone else experienced this behaviour and found a solution? I have numerous other queries similarly formulated that all work perfectly.
Thanks
Colin Brown
I have created a package in Oracle 9i that contains:
procedure xyz (p_cursor in out ref_cursor)
as
begin
open p_cursor for
select
t.sqid
from
table_t t
where
(systimestamp - t.last_contact) > interval '1' minute;
end;
where ref_cursor is defined in the header as a ref cursor:
type ref_cursor is ref cursor;
procedure xyz (p_cursor in out ref_cursor);
and used the wizard to create the Delphi interface.
Elsewhere in my application I have:
fPackage.xyz (fQuery);
fQuery.Execute;
while not fQuery.Eof do begin
MyQueue.Add(fQuery.Field('SQID'));
end;
The query is continually returning the first sequential identifier ad infinitum (even though the Oracle Monitor shows only six rows returned as expected).
Has anyone else experienced this behaviour and found a solution? I have numerous other queries similarly formulated that all work perfectly.
Thanks
Colin Brown