Content UDF 是重载的,这表示视使用此 UDF 的方法的不同, 它具有不同的格式。格式如下:
格式 1:将对象检索至客户机缓冲区或客户机文件:
Content( handle, /* object handle */ );
格式 2:将对象段检索至客户机缓冲区或客户机文件:
Content( handle, /* object handle */ offset, /* offset where retrieval begins */ size /* number of bytes to retrieve */ );
格式 3:将对象检索至服务器文件:
Content( handle, /* object handle */ target_file, /* server file name */ overwrite /* 0=Do not overwrite target file if it exists */ /* 1=Overwrite target file */ );
另外,Content UDF 还包括下列仅针对图象对象的格式:
格式 4:将图象检索至客户机缓冲区或文件, 并进行格式转换:
Content( handle, /* object handle */ target format /* target format */ );
格式 5:将对象检索至服务器文件,并进行格式转换:
Content( handle, /* object handle */ target_file, /* server file name */ overwrite, /* 0=Do not overwrite target file if it exists */ /* 1=Overwrite target file */ target format /* target format */ );
格式 6:将对象检索至客户机缓冲区或文件, 并进行格式转换和其他更改:
Content( handle, /* object handle */ target format, /* target format */ conversion_options /* conversion options */ );
格式 7:将对象检索至服务器文件,并进行格式转换和其他更改:
Content( handle, /* object handle */ target_file, /* server file name */ overwrite, /* 0=Do not overwrite target file if it exists */ /* 1=Overwrite target file */ target format, /* target format */ conversion_options /* conversion options */ );
例如,以下语句将从 Employee 表中检索到的图象放到服务器上的 文件中。(这与格式 3 相对应。)
EXEC SQL SELECT CONTENT( /* retrieval UDF */ PICTURE, /* image handle */ '/employee/images/ajones.bmp', /* target file */ 1) /* overwrite target file */ FROM EMPLOYEE WHERE NAME = 'Anita Jones';
C 应用程序中的下列语句将从 Employee 表中检索到的图象放到服务器上的文件中。在检索图象时,将进行格式转换。(这与格式 5 相对应。)
EXEC SQL BEGIN DECLARE SECTION; char hvImg_fname[255]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( /* retrieval UDF */ PICTURE, /* image handle */ '/Employee/images/ajones.bmp', /* target file */ 1, /* overwrite target file */ 'GIF') /* target format */ INTO :hvImg_fname FROM EMPLOYEE WHERE NAME = 'Anita Jones';