機能
指定されたユーザに対する辞書情報一覧を取得するためのハンドルを取得します。
書式
int KVRDIC_open_dicinfo_list(static char* username, int dickind, void **ghandle);
パラメタ
static char * | username | (in) | Navigatorのユーザ名 |
int | dickind | (in) | 取得する辞書種別 |
void ** | ghandle | (out) | 辞書情報一覧取得用ハンドル |
戻り値
戻り値 | 意味 |
---|---|
0 | ハンドルの取得が正常に行われた場合に返却します。 |
1 | 指定されたユーザに対して、指定された辞書種別の情報を辞書出口から取得しない場合に返却します。 |
それ以外 | 何らかの原因でハンドルの取得に失敗した場合に返却します。 |
説明
dickindの辞書種別値は、インクルードファイルで定義した以下の値が渡されます。
KVRDIC_DICKIND_CLOSEINFO:公開/非公開情報 |
未定義の値が渡された場合は、必ず戻り値1で終了するようにしてください。
ghandleには、辞書情報一覧を取得する対象のハンドルを返却してください。ここで返却されたハンドルは、NavigatorがKVRDIC_get_dicinfo_list、およびKVRDIC_close_dicinfo_listを使用する際に、inパラメタとして使用されます。
公開/非公開情報構造体
以下は公開/非公開情報構造体です。
辞書出口モジュールがNavigatorに対して公開/非公開情報を返却する場合、本構造体の形式で情報を返却してください。
typedef struct{ |
型 | メンバ | 意味 |
---|---|---|
int | closekind | 情報種別を以下の値で設定してください。 |
int | dbkind | 対象資源のデータベース種別を、以下の値で設定してください。 |
char[128] | dbname | 対象資源のデータソース名を設定してください。 データベース種別がOracleの場合、環境変数「ORACLE_SID」または「RN_ORACLE_DB」に指定した名前を設定します。 データベース種別がSQL Serverの場合、環境変数「RN_MSSQLSERVER_DB」に指定したデータベース名を設定します。 それ以外の場合は、登録したデータソース名を設定します。 |
char[252] | idname | 対象資源がOracleの他サイトの資源の場合、データベースリンク名を設定してください。 |
char[36] | schemaname | 対象資源のスキーマ名を設定してください。 |
char[36] | tablename | 情報種別がスキーマ情報の場合、0x00で埋めてください。 |
char[36] | columnname | 情報種別が項目情報以外の場合、0x00で埋めてください。 |
注意事項
公開/非公開情報は、Navigator辞書管理ツールや辞書ユーティリティコマンドなどで、Navigator辞書に追加されている資源に対する情報です。Navigator辞書管理ツールで追加されていない資源に対する情報を返却した場合、その情報は無効となります。
同じ資源に対する情報種別の異なる公開/非公開情報が存在する場合、情報種別が、1)スキーマ情報、2)テーブル情報、3)項目情報の順で優先されるため、優先度の低い情報は無効になります。
サンプルプログラム
=================================================================================== #include <stdlib.h> #include "kvrdic_dicexit.h" /* ハンドル構造体 */ typedef struct{ int info_num; int count; KVRDIC_STRUCT_CLOSEINFO *info; }SampleHandle; /* セキュリティ情報取得関数(内部関数) */ /* GetSecurityInfo ()は、Navigatorユーザ名をinパラメタとして受け取り、*/ /* ユーザに対する非公開情報数と非公開情報リストを返却する関数です。 */ int GetSecurityInfo(char *username, int *info_num, KVRDIC_STRUCT_CLOSEINFO **info); /**************************/ /* 辞書情報の取得開始関数 */ /**************************/ int KVRDIC_open_dicinfo_list(char *username, int dickind, void **ghandle) { int rc=0; SampleHandle *hp; /***** inパラメタチェック *****/ /* 辞書出口が返却不可の辞書種別が指定された場合はrc=1で終了する(必須) */ if(dickind!=KVRDIC_DICKIND_CLOSEINFO) return 1; /***** outパラメタ設定 *****/ /* ハンドル域取得 */ *ghandle = (SampleHandle *)malloc(sizeof(SampleHandle)); /* 何らかの原因でハンドルの取得に失敗した場合はrc!=0or1で終了する */ if(*ghandle==NULL) return 2; /* ハンドル作成 */ hp=*ghandle; memset(hp, 0x00, sizeof(SampleHandle)); /* ハンドルにユーザに対するセキュリティ情報を格納 */ rc=GetSecurityInfo(username, &(hp->info_num), &(hp->info)); /* 処理が正常終了した場合はrc=0で終了する */ if(rc==0) return rc; else { free(*ghandle); *ghandle=NULL; return rc+100000; } } ===================================================================================