W dokumentacji here następujący przykład kodu należy podać przy użyciu cursor
:Firebird kursory - Dlaczego byłoby użyć jednego
execute block
returns (
relation char(31),
sysflag int)
as
declare cur cursor for
(select rdb$relation_name, rdb$system_flag from rdb$relations);
begin
open cur;
while (1=1) do
begin
fetch cur into relation, sysflag;
if (row_count = 0) then leave;
suspend;
end
close cur;
end
Ale może to być również wykonane w następujący sposób:
execute block
returns (
relation char(31),
sysflag int)
as
begin
for select rdb$relation_name, rdb$system_flag
from rdb$relations
into relation, sysflag
do begin
suspend;
end
end
Dlaczego miałbym chcieć go użyć? Ostatecznie powyższy przykład nie wymaga nawet execlute block
, ponieważ jest to po prostu prosta instrukcja select. Tak więc przypuszczam, że przykład jest zbyt prosty, aby pokazać korzyści z tego.
Aktualna wersja dokumentacji zawiera nieco bardziej złożony przykład: http://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-psql-coding.html#fblangref25-psql- declare-cursor –