欢迎来到天天文库
浏览记录
ID:10699069
大小:253.00 KB
页数:21页
时间:2018-07-07
《as400中文培训教程之db(5)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、作业缺省的日期格式和分隔符都要一致。如果使用常数,QRYSLT应如下:QRYSLT('"12/31/87"*EQDATE')作业的缺省的格式必须是MMDDYY,并以‘/’分隔。如果想用已在库中数字字段与变量做比较,仅可使用字符变量。例如,想选择所有压缩日期字段大于某个变量的所有记录,就必须保证变量是字符格式,即通常在用OPNQRYR命令前,要用CHGVAR命令把变量从十进数字字段变为字符字段,CHGVAR命令如下:CHGVARVAR(&CHARVAR)VALUE('123188')QRYSLY参数规定如下:QRYSLT(
2、&CHARVAR*CAT'*GTDATE')如果用常数,QRYSLT规定如下:QRYSLT('123187*GTDATE')例3:用一定范围的值选择记录假定日期字段的格式为YYMMDD并以”.”为分隔符,要处理所有1988年的记录,应如下定义:OVRDBFFILE(FILEA)SHARE(*YES)OPNQRYFFILE(FILEA)QRYSLT('DATE*EQ%RANGE("88.01.01"+"88.12.31")')CALLPGM(PGMC)CLOFOPNID(FILEA)DLTOVRFILE(FILEA)这个例
3、子在DATE字段为日期格式,作业缺省值为YYMMDD,分隔符为’.’时也可运行。如果范围定义为字符变量,DATE是字符类型,QRYSLT规定如下:QRYSLT('DATE*EQ%RANGE("'*CAT&LORNG*CAT'"'*BCAT'"'+*CAT&HIRNG*CAT'")')但如果DATE定义为数字字段,QRYSLT规定:QRYSLT('DATE*EQ%RANGE('*CAT&LORNG*BCAT&HIRNG*CAT')')注:如果QRYSLT参数用在CL程序中,也可用*BCAT,但它不能用在交互命令行。例4:用
4、包含功能选择记录假定要处理所有Addr字段中有BROADWAY街名的所有记录,包含功能(*CT)确定字符串是否在字段中出现。语句如下:OVRDBFFILE(FILEA)SHARE(*YES)OPNQRYFFILE(FILEA)QRYSLT('ADDR*CT"BROADWAY"')CALLPGM(PGMC)CLOFOPNID(FILEA)DLTOVRFILE(FILEA)在这个例子中,数据是用大写,如果数据是小写或混合大小写,在比较前要有把它们变为大写的转换操作,系统提供的表QSYSTRNTBL可以把字母a到z变为大写(也
5、可用其它表来完成转换),规定如下:OVRDBFFILE(FILEA)SHARE(*YES)OPNQRYFFILE(FILEA)QRYSLT('%XLATE(ADDRQSYSTRNTBL)*CT+"BROADWAY"')CALLPGM(PGMC)CLOFOPNID(FILEA)DLTOVRFILE(FILEA)在QRYSLT句中用%XLATE功能时,传到高级语言程序的字段值与数据库中一样,可以用MAPFLD参数中的%XLATE功能强制字段变大写。例5:用多个字段选择记录假如要处理那些Amt字段为零的,或是Lstdat字段(
6、YYMMDD格式的字符型)小于等于88-12-31的所有记录,可以规定:OVRDBFFILE(FILEA)SHARE(*YES)OPNQRYFFILE(FILEA)QRYSLT('AMT*EQ0*ORLSTDAT+*LE"88-12-31"')CALLPGM(PGMC)CLOFOPNID(FILEA)DLTOVRFILE(FILEA)本例在LSTDAT字段为日期型时一样可用,LSTDAT可以为各种合法日期格式,但作业缺省应为YYMMDD,分隔符为‘-’。如果使用变量QRYSLT规定如下:QRYSLT('AMT*EQ'*C
7、AT&VARAMT*CAT'*OR+LSTDAT*LE"'*CAT&VARDAT*CAT'"')或用相反顺序:QRYSLT('"'*CAT&VARDAT*CAT'"*GTLSTDAT*OR'+*CAT&VARAMT*CAT'*EQAMT')注:VARAMT必须为字符类型,如果数字变量型传到CL程序中,必须把它转换成字符型,可用CHGVAR来做这个转换。例6:在一个程序多次使用OPNQRYF命令可以高级语言程序中多次使用OPNQRYF命令。例如,要向用户提示选择项,并显示几页记录,在完成第一个请求后,用户可能要做其它选择值
8、并显示记录,可以这样做:1.在调用程序前,用OVRDBF命令指定SHARE(*YES)2.在高级程序中提示用户选择某个值。3.把选择的值传给运行OPNQRYF的CL程序(或调用程序QCMDEXC运行这条命令)处理OPNQRYF前,文件必须关闭,可以用CLOF命令关闭,并监控文件是否关闭。4.返回到高级语言程序。5.在
此文档下载收益归作者所有