系统为每个SELECT-OPTIONS语句创建选择表。选择表的目的是按标准化的方式保存复合选择限制。它们可按多种方式使用。它们的主要目的是使用OPEN SQL语句的WHERE子句把选择标准直接传输到数据库表。选择表是一个带表头行的内表。它的行结构是字段字符串,由四个组件构成,即SIGN,OPTION,LOW和HIGH.
SIGN: SIGN的数据类型是C,长度为1.SIGN是标志,表示保存在OPTION中的运算符是否需要翻转。允许值是I和E.
I:表示“包含” E:表示“排除”
OPTION:OPTION的类型是C,长度为2。OPTION包含选择运算符。如果SIGN包含E,运算符的作用就像它的前面有NOT一样。
如果HIGH是空的,可以使用EQ,NE,GT,LE,LT,CP和NP,这些运算符在编程逻辑表达式中描述。运算符CP和NP没有它们在通常逻辑表达式中所具有的范围。只有当在输入字段中使用了通配符(“*”或“+”)时它们才是有效的。
如果HIGH已被填充,则可以使用BT(位于)和NB(不位于)。这些运算符的功能与BETWEEN和NOT BETWEEN一样。
LOW:LOW的数据类型与数据库表的列类型相同,该表与选择标准相连接。
如果HIGH为空,LOW的内容定义单值选择。它与OPTION中的运算符相结合,为数据库选择指定了条件。
如果HIGH已填充,LOW和HIGH中的内容为间隔选择指定上界和下界。与OPTION中的运算符相结合,该间隔为数据库选择指定了条件。
HIGH:数据与数据库表的列类型相同,该表与选择标准相连接。HIGH中的内容为间隔选择指定了上界。
RANGES语句
要用与选择表相同的结构创建内表,可使用RANGES语句
RANGES <seltab> FOR <f>."该语句创建选择表<seltab>,该表参考数据库表的列<f>或内部字段<f>。选择表<seltab>必须在程序中填充。不必在程序中再用TABLES语句声明数据库表。
例:
DATA: BEGIN OF <seltab> OCCURS 10,
SIGN(1),
OPTION(2),
LOW LIKE <f>,
HIGH LIKE <f>,
END OF <seltab>.
用RANGES语句创建的选择表不是选择屏幕的一部分,它们在程序<prog>中不能用于数据传递,该程序由下列语句启动:SUBMIT <prog> WITH <seltab> IN <table>.表<table>可以在调用程序中用RANGES创建。
SELECT-OPTIONS语句用于创建选择表,这是一种标准化存储复合选择限制的方法,主要用于OPENSQL的WHERE子句。选择表包含SIGN、OPTION、LOW和HIGH四个组件,分别表示运算符的逻辑、运算符类型、低界和高界。RANGES语句则用来创建具有相同结构的内表,但不在选择屏幕中,且不能直接用于数据传递。这种表需在程序中填充并配合SUBMIT语句使用。
266

被折叠的 条评论
为什么被折叠?



