OV_QUERY_SYS_INFO
クエリー・システム構成情報
注:この組み込み関数は、アプリケーションへの影響を考慮した上でユーザーの責任において使用してください。明示的か暗黙的かを問わず、いかなる保証もありません。「免責事項」全文を参照してください。
ファンクション番号: |
993 |
必要なDLL: |
U_BIF993.DLL |
各製品の対応
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
使用不可 |
LANSA/AD |
使用不可 |
引数
番号 |
タイプ |
必須/任意 |
説明 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
照会する情報 以下のいずれかの値として渡します。 SYS_DRIV SYS_DIR SYS_DIR_EXECUTE SYS_DIR_SOURCE SYS_DIR_OBJECT PART_DRIV PART_DIR PART_DIR_EXECUTE PART_DIR_SOURCE PART_DIR_OBJECT TEMP_DRIV TEMP_DIR DRIV_LIST
|
1 |
256 |
|
|
戻り値
番号 |
タイプ |
必須/任意 |
説明 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
返される情報 SYS_DRIV LANSAシステムが存在するドライブが、ドライブ文字とコロンとして返されます(例:C:、D:、E:)。 SYS_DIR LANSAシステムが存在するルート・ディレクトリが返されます(例:D:\X_WIN95\X_LANSA\)。 SYS_DIR_EXECUTE LANSAシステムのEXECUTEオブジェクトが存在するディレクトリが返されます(例:D:\X_WIN95\X_LANSA\EXECUTE\)。 SYS_DIR_SOURCE LANSAシステムのSOURCEオブジェクトが存在するディレクトリが返されます(例:D:\X_WIN95\X_LANSA\SOURCE\)。 SYS_DIR_OBJECT LANSAシステムのOBJECTオブジェクトが存在するディレクトリが返されます(例:D:\X_WIN95\X_LANSA\OBJECT\)。 PART_DRIV LANSAシステムが存在する現在の区画のドライブが、ドライブ文字とコロンとして返されます(例C:、D:、E:)。 PART_DIR システムが存在する現在の区画のルート・ディレクトリが返されます(例:D:\X_WIN95\X_LANSA\X_DEM\)。 PART_DIR_EXECUTE EXECUTEオブジェクトが存在する現在の区画のディレクトリが返されます(例:D:\X_WIN95\X_LANSA\X_DEM\EXECUTE\)。 PART_DIR_SOURCE SOURCEオブジェクトが存在する現在の区画のディレクトリが返されます(例:D:\X_WIN95\X_LANSA\X_DEM\SOURCE\)。 PART_DIR_OBJECT OBJECTオブジェクトが存在する現在の区画のディレクトリが返されます(例:D:\X_WIN95\X_LANSA\X_DEM\OBJECT\)。 TEMP_DRIV 一時ファイル/オブジェクトが作成されるドライブが、ドライブ文字とコロンとして返されます(例:C:、D:、E:)。 TEMP_DIR 一時ファイル/オブジェクトが作成されるディレクトリが返されます(例:D:\TEMP\)。 DRIV_LIST 戻り値2の作業リストが返されます。この値(戻り値1)は、DRIV_LIST要求を行うときにダミー引数として渡す必要があります。 |
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;