OV_QUERY_SYS_INFO
注:&<a href="bif_rules.htm"&>組み込み関数の規則&</a&>
クエリー・システム構成情報
この組み込み関数は、アプリケーションへの影響を考慮した上でユーザーの責任において使用してください。明示的か暗黙的かを問わず、いかなる保証もありません。「免責事項 」全文を参照してください。
ファンクション番号: |
993 |
必要なDLL: |
U_BIF993.DLL |
各製品の対応
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
使用不可 |
LANSA/AD |
使用不可 |
引数
番号 |
タイプ |
必須/任意 |
説明 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
A |
必須 |
照会する情報 |
1 |
256 |
|
|
戻り値
番号 |
タイプ |
必須/任意 |
説明 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
1 |
A |
必須 |
返される情報 |
1 |
256 |
|
|
2 |
リスト |
任意 |
返された情報が保持される作業リスト。現時点では、DRIV_LIST要求の場合のみ必要です。DRIV_LIST要求に対して返される作業リストのレイアウトと形式については、以下の例を参照してください。 |
N/A |
|
|
|
例
以下のRDMLファンクションの例(CS/400の自由形式のファンクション・エディターでコピー/貼り付け可能)は、可能性のあるドライブ/パスのすべての組み合わせを照会して表示します。
FUNCTION OPTIONS(*DIRECT); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(SYS_DRIV); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(SYS_DIR); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(SYS_DIR_EXECUTE); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(SYS_DIR_OBJECT); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(SYS_DIR_SOURCE); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(PART_DRIV); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(PART_DIR); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(PART_DIR_EXECUTE); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(PART_DIR_OBJECT); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(PART_DIR_SOURCE); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(TEMP_DRIV); EXECUTE SUBROUTINE(SHOW_INFO) WITH_PARMS(TEMP_DIR); ********** COMMENT(Display subroutine); SUBROUTINE NAME(SHOW_INFO) PARMS( OV_QUERY); DEFINE FIELD(#OV_QUERY) TYPE(*CHAR) LENGTH(50); DEFINE FIELD(#OV_RESULT) TYPE(*CHAR) LENGTH(50); USE BUILTIN(OV_QUERY_SYS_INFO) WITH_ARGS(#OV_QUERY) TO_GET(#OV_RESULT); DISPLAY FIELDS(#OV_QUERY #OV_RESULT); ENDROUTINE;
以下の例は、現在のPCに接続されているすべてのディスク・ドライブのドライブ文字とドライブ・タイプを表示します。ドライブ・タイプはREM (取り外し可能ドライブ)、FIX (ハード・ドライブ)、NET (ネットワーク・ドライブ)、CD (CD-ROMドライブ)、またはRAM (RAMドライブ)として返されることに注意してください。
Windows 3.1環境では、使用可能なドライブの分類はタイプREM、FIX、NETのみです。
Windows 95/NT環境では、使用可能なドライブの分類はタイプREM、FIX、NET、CD、またはRAMのみです。
また、この例では、ドライブ文字がchar(2)としてA:、B:などの形式で返されることに注意してください。
FUNCTION OPTIONS(*DIRECT); DEFINE FIELD(#OV_RESULT) TYPE(*CHAR) LENGTH(50); DEFINE FIELD(#OV_DRIVE) TYPE(*CHAR) LENGTH(2); DEFINE FIELD(#OV_TYPE) TYPE(*CHAR) LENGTH(3); DEF_LIST NAME(#OV_DRIVD) FIELDS(#OV_DRIVE #OV_TYPE); DEF_LIST NAME(#OV_DRIVW) FIELDS(#OV_DRIVE #OV_TYPE) TYPE(*WORKING) ENTRYS(26); ********** COMMENT(Extract list off drives and display); USE BUILTIN(OV_QUERY_SYS_INFO) WITH_ARGS(DRIV_LIST) TO_GET(#OV_RESULT #OV_DRIVW); CLR_LIST NAMED(#OV_DRIVD); SELECTLIST NAMED(#OV_DRIVW); ADD_ENTRY TO_LIST(#OV_DRIVD); ENDSELECT; DISPLAY BROWSELIST(#OV_DRIVD);
以下の例は、対象のドライブ・タイプをREM、FIX、NET、またはALLとして指定するよう要求し、要求されたタイプのすべてのドライブをドロップダウンに表示します。この例では、ドライブ文字がchar(1)としてA、B、Cなどの形式で返されることに注意してください。
FUNCTION OPTIONS(*DIRECT); DEFINE FIELD(#OV_RESULT) TYPE(*CHAR) LENGTH(50); DEFINE FIELD(#OV_DRIVE) TYPE(*CHAR) LENGTH(1) INPUT_ATR(DDHD); DEFINE FIELD(#OV_WDRIVE) TYPE(*CHAR) LENGTH(1); DEFINE FIELD(#OV_TYPE) TYPE(*CHAR) LENGTH(3); DEFINE FIELD(#OV_WTYPE) TYPE(*CHAR) LENGTH(3); DEFINE FIELD(#OV_RC) TYPE(*CHAR) LENGTH(2); DEFINE FIELD(#OV_WCOUNT) TYPE(*DEC) LENGTH(7) DECIMALS(0) DEFAULT(*zero); DEF_LIST NAME(#OV_DRIVW) FIELDS(#OV_WDRIVE #OV_WTYPE) TYPE(*WORKING) ENTRYS(26); DEF_COND NAME(*SHOWDRIV) COND('#OV_wcount *gt 0'); ********** COMMENT(Request type to be shown in Drop Down); BEGIN_LOOP; REQUEST FIELDS(#OV_TYPE (#OV_DRIVE *SHOWDRIV)); BEGINCHECK; VALUECHECK FIELD(#OV_TYPE) WITH_LIST('REM' 'FIX' 'NET' 'ALL') MSGTXT('Type must be REM, FIX, NET or ALL'); ENDCHECK; ********** COMMENT(Extract list off drives and display); USE BUILTIN(OV_QUERY_SYS_INFO) WITH_ARGS(DRIV_LIST) TO_GET(#OV_RESULT #OV_DRIVW); USE BUILTIN(DROP_DD_VALUES) WITH_ARGS(DDHD) TO_GET(#OV_RC); CHANGE FIELD(#OV_WCOUNT #OV_DRIVE) TO(*NULL); SELECTLIST NAMED(#OV_DRIVW); IF COND('(#OV_type = #OV_wtype) *or (#OV_type = ALL)'); CHANGE FIELD(#OV_WCOUNT) TO('#OV_wcount + 1'); USE BUILTIN(ADD_DD_VALUES) WITH_ARGS(DDHD *BLANKS #OV_WDRIVE) TO_GET(#OV_RC); IF_NULL FIELD(#OV_DRIVE); CHANGE FIELD(#OV_DRIVE) TO(#OV_WDRIVE); ENDIF; ENDIF; ENDSELECT; IF COND('#OV_wcount <= 0'); MESSAGE MSGTXT('No drives of the requested type exist on (or are accessible to) this system'); ENDIF; END_LOOP;