目的
この関数を使うと、テーブル演算子がシステム変数やセッション属性など現在のセッションに関する情報を取得できます。
構文
void
FNC_DBSSessionAttrInfo (char *jsonData);
- char *jsonData
- JSON形式の文字列として関数によって返されるセッション情報。
使用上の注意
FNC_DBSSessionAttrInfoによって返される現在のセッション情報には、以下が含まれます。
- 現在のユーザー名
- 現在のロール名
- トランザクション モード
- 照合
現在のロール名に対して、最大127のロール名が返されます。ユーザーに127を超えるロールが付与されており、ユーザーがすべてのロールを有効にするためにSET ROLE ALL文を発行した場合、現在のロール名に対して"ALL"が返されます。例えば、次の出力例は127を超えるロールが有効になっているTESTUSERに返されるセッション情報を示しています。
{"CurUserName":"TESTUSER","CurRoleName":"ALL","TransactionMode":"BTET","Collation":"ASCII"}
SET ROLE ALLを指定したがロールが127以下のユーザーの場合は、"ALL"と共に各ロール名が返されます。例えば、TESTUSER2には、Role1、Role2、およびRole3という3つのロールがあります。
{"CurUserName":"TESTUSER2","CurRoleName":["ALL","Role1","Role2","Role3"],"TransactionMode":"BTET","Collation":"ASCII"}
FNC_DBSSessionAttrInfoの使用例
次のコードは、FNC_DBSSessionAttrInfoを呼び出して現在のセッション情報文字列を取得します。
... char jsonData [4096] = {'\0'}; FNC_DBSSessionAttrInfo(jsonData);
次のサンプル出力は、現在のユーザー名、現在のロール名、トランザクション モード、および照合を示しています。
{"CurUserName":"TESTUSER","CurRoleName":"R1","TransactionMode":"BTET","Collation":"ASCII"}