typedef struct CliSQLExit2_struct { char eye_catcher[4]; /* “PRE ” or "POST" */ UInt32 level; /* 2 */ char *SQL_Request_ptr; char Start_date[80]; UInt32 Clock_time; Int32 *SQL_len_ptr; UInt32 logsessid; UInt16 Process_Post; /* only applies to pre-SQL exits */ char fill_1[2]; CliExit2_t opts; } CliSQLExit2_t, *CliSQLExit2_p;
最大許容記憶域は、出口が呼び出される前に、CLIで割り当てられます。 これらの長さは、今後の互換性のため(さらに出口で、保有する領域を把握できるよう)、<var name>_max_lenに格納されます。
出口でいずれかのフィールドの値を変更すると、その<var name>_actual_lenも更新する必要があります。 charsetフィールドは変更できません。 制御がCLIに戻ると、適切なフィールド(Charsetを除くすべて)が、scbptrのそれぞれの領域に再びコピーされます。 その後、CLIによってあらかじめ割り当てられたメモリが解放されます(Process_Postが設定されていない場合、CliPostSQLExt2呼び出し後に解放されます)。 メモリ以外の割り当て変更は、本来のユーザー出口と同じ処理となります。