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,
... )
{ ... }
|