Declares the context of a record stream and thereby is
able to associate a stream name with a RSE. This provides
Oracle Rdb with the context needed to place the elements of the
START_STREAM...FETCH...END_STREAM in a single programming module
in any order.
1 – Examples
The following programs demonstrate the use of the DECLARE_STREAM
statement to specify a record selection expression that limits
the records in the stream to those with a value of less than ten
thousand in the SALARY_AMOUNT field.
1.1 – C Example
#include <stdio.h>
#define TRUE 1
#define FALSE 0
DATABASE PERS = FILENAME "PERSONNEL";
DECLARE_STREAM sal USING SH IN SALARY_HISTORY
WITH SH.SALARY_AMOUNT LT 10000;
int end_of_stream;
main()
{
READY PERS;
START_TRANSACTION READ_WRITE;
START_STREAM sal;
FETCH sal
AT END
end_of_stream = TRUE;
END_FETCH;
while (! end_of_stream)
{
MODIFY SH USING
SH.SALARY_AMOUNT = SH.SALARY_AMOUNT * (1.5);
END_MODIFY;
FETCH sal
AT END
end_of_stream = TRUE;
END_FETCH;
}
END_STREAM sal;
COMMIT;
FINISH;
}
1.2 – Pascal Example
program anycond (input,output);
DATABASE PERS = FILENAME 'PERSONNEL';
var
end_of_stream : boolean;
DECLARE_STREAM sal USING SH IN SALARY_HISTORY
WITH SH.SALARY_AMOUNT LT 10000;
begin
READY PERS;
START_TRANSACTION READ_WRITE;
START_STREAM sal;
FETCH sal
AT END
end_of_stream := TRUE;
END_FETCH;
while not end_of_stream do
begin
MODIFY SH USING
SH.SALARY_AMOUNT := SH.SALARY_AMOUNT * (1.5);
END_MODIFY;
FETCH sal
AT END
end_of_stream := TRUE;
END_FETCH;
end;
END_STREAM sal;
COMMIT;
FINISH;
end.
2 – Format
(B)0[m
[4mDECLARE_STREAM[m qqqqqwqq>qqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqk
mqq> handle-options qj x
x
lqqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
x
mqqqqqqqqqqqqqqqq> declared-stream-name qqqqq> [4mUSING[m qqqq> rse qq>
(B)0[mhandle-options =
q> ( qwqqqqqq> [4mREQUEST_HANDLE[m qqqqq> var qqqqqqqqwq> ) q>
tqqqqqq> [4mTRANSACTION_HANDLE[m qqq> var qqqqqqqqu
mqqqqqq> [4mREQUEST_HANDLE[m q> var q> , qqqqqqqk x
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
mqqqq> [4mTRANSACTION_HANDLE[m q> var qqqqqqqqqqqj
2.1 – Format arguments
declared-stream-name A name you give the stream you declare.
The stream name must be a valid operating
system name.
rse A record selection expression. A phrase
that defines the specific conditions
that individual records must meet before
Oracle Rdb includes them in a record stream.
handle-options A request handle, a transaction handle, or
both.
REQUEST_HANDLE var The REQUEST_HANDLE keyword followed by a
host language variable. A request handle
identifies a compiled Oracle Rdb request.
If you do not supply a request handle
explicitly, RDML associates a unique
request handle for the compiled request.
TRANSACTION_HANDLE The TRANSACTION_HANDLE keyword followed by
var a host language variable. A transaction
handle identifies a transaction. If
you do not supply a transaction handle
explicitly, RDML uses the default
transaction handle.