PERIOD型の引数の値にアクセスするには、次のようにします。
- SQL要素型にマッピングされるCデータ型で表現されるのと同様に、PERIOD型の最初と最後の境界までを格納するのに十分なバッファを割り当てます。
例えば、PERIOD(TIME WITH TIME ZONE)引数を指定するCREATE FUNCTION文を例に考えてみましょう。引数の値にアクセスするには、関数が2つのANSI_Time_WZoneの値を格納するのに十分な領域のバッファを割り当てる必要があります。ここで、ANSI_Time_WZoneはCデータ型で、TIME WITH TIME ZONEにマッピングされます。
- FNC_GetInternalValueを呼び出すことにより、割り振ったバッファ内にPERIOD型の値を入れます。
FNC_GetInternalValueの詳細については、Cライブラリ関数を参照してください。
PERIOD(DATE)型の値のアクセス方法を示すコードの一部を、以下に示します。
void check_duration( PDT_HANDLE *duration, INTEGER *result, char sqlstate[6]) { void * tmpBuf = 0; int bufSize = 0; int length; /* Get the value of the PERIOD(DATE) duration. */ bufSize = SIZEOF_DATE * 2; tmpBuf = FNC_malloc(bufSize); FNC_GetInternalValue(*duration, tmpBuf, bufSize, &length); ... }