Cのデータ型とマクロの定義
typedef struct VARGRAPHIC { int length; /* length of string */ GRAPHIC graphic[1]; /* string - size must be adjusted */ } VARGRAPHIC; #define VARGRAPHIC_M(len) struct { int length; GRAPHIC graphic[len]; }
使用方法
VARGRAPHIC構造体は、既存のVARCHAR CHARACTER SET GRAPHIC値を参照するために使用します。
VARGRAPHIC_Mマクロは、特定の長さの独自のVARCHAR CHARACTER SET GRAPHIC値を定義するために使用します。例えば、長さ30のVARCHAR CHARACTER SET GRAPHIC値を定義するには、このマクロを次のように使用します。
VARGRAPHIC_M(30) myvgstr;
関数の結果型が可変長グラフィック データの場合、結果引数はCREATE FUNCTION文のRETURNS句で定義されている最大値分のグラフィック フィールドを予約済みのVARGRAPHIC構造体を内容とするデータ域へのポインタです。
UDF定義とC関数宣言の中でVARCHAR(n) CHARACTER SET GRAPHICを使用する例を以下に示します。
SQL関数定義 | 対応するC関数宣言 |
---|---|
CREATE FUNCTION F1 ( A VARCHAR(30) CHARACTER SET GRAPHIC ) RETURNS VARCHAR(12) CHARACTER SET GRAPHIC ...; |
void f1( VARGRAPHIC *a, VARGRAPHIC *result, ... ) { ... } |