您可以使用 Content UDF,不進行格式轉換而將影像、 音效或視訊物件擷取至伺服器檔案。此外,您可以使用 Content UDF, 進行格式轉換而將影像擷取至伺服器檔案。
當您不進行轉換而將影像、音效或視訊物件擷取至伺服器上的檔案時, 請指定物件的 handle、目標檔名以及改寫指示符。改寫指示符告知 Extender, 如果目標檔案已存在伺服器上時, 是否要以擷取的資料改寫目標檔案。
若目標檔案不存在,Extender 會在伺服器建立目標檔案。
如果您指定改寫指示符值 1, 則 Extender 會以擷取的資料改寫目標檔案。如果您指定改寫指示符值 0, 則 Extender 不會改寫目標檔案,因此而不擷取資料。
如果要擷取的物件被儲存為資料庫表格中的 BLOB, 則會忽略改寫指示符。無論指定的改寫指示符為何, 都會建立或改寫目標檔案。
當您將物件擷取至伺服器檔案時, 它會傳回伺服器檔案的名稱。例如,下列在 C 應用程式中的陳述式會將視訊擷取至伺服器的檔案中。 伺服器檔案的檔名則會儲存在主變數 hvVid_fname 中。
EXEC SQL BEGIN DECLARE SECTION; struct{ short len; char data[250]; }hvVid_fname[; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( VIDEO, /* video handle */ '/employee/videos/ajones.mpg', /* server file */ 1) /* overwrite target file */ INTO :hvVid_fname; FROM EMPLOYEE WHERE NAME = 'Anita Jones';
如果物件被儲存為資料庫表格中的 BLOB, 則適合使用 Content UDF,不進行轉換而將物件擷取至伺服器檔案中。如果物件是儲存在伺服器檔案中, 則將來源檔的內容複製到目標檔會更有效率。
當您進行格式轉換而將影像擷取至伺服器檔案時,請指定影像的 handle、 目標檔名、改寫目標指示符以及目標格式。表 4識別容許的格式轉換。您也 可以選擇對目標格式指定 NULL 值或空字串或字串 ASIS。在此情況下,擷取影像的格式會與來源 相同。
例如,下列在 C 應用程式中的陳述式會將影像擷取至伺服器的檔案中。來源影像的格式為點陣圖格式, 且被儲存為資料庫表格中的 BLOB。擷取的影像被轉換為 GIF 格式。 伺服器檔案的檔名則會儲存在主變數 hvImg_fname 中。
EXEC SQL BEGIN DECLARE SECTION; struct{ short len; char [400]; }hvImg_fname[; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT CONTENT( PICTURE, /* image handle */ '/employee/images/ajones.gif', /* target file */ 1, /* overwrite target file */ 'GIF') /* target format */ INTO :hvImg_fname FROM EMPLOYEE WHERE NAME = 'Anita Jones';
必須是可存取的伺服器檔案:當您將物件擷取至伺服器檔案時,您必須指定目標 檔案的完整名稱。 另外您必須確定已經適當設定 DB2IMAGEEXPORT、DB2AUDIOEXPORT 和 DB2VIDEOEXPORT 環境變數, 以便分辨不完整的檔名規格。