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;