您可將影像、音效或視訊物件儲存為資料庫表格中的 BLOB, 或儲存在伺服器檔案中。
如果您將物件儲存在伺服器檔案中,資料庫會指向該檔案。
若儲存來自從屬站緩衝區或從屬站檔案的物件, 請您依照 target_file 參數中指定的結果,指示 BLOB 或伺服器檔案儲存體。如果是指定檔名, 表示您要將物件儲存在伺服器檔案中。 若指定一個 NULL 值 或空字串,則表示您要在資料庫表格中將物件儲存為 BLOB。 target_file 參數的資料類型是 LONG VARCHAR。若指定一個 NULL 值, 請記得將該值強制轉型為 LONG VARCHAR 資料類型。
例如,下列在 C 應用程式中的陳述式會儲存一個將影像併入資料庫表格的橫列。影像來源是位於從屬站緩衝區中。 影像會儲存在伺服器檔案。資料庫表格會指向此伺服器檔案:
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR Img_buf EXEC SQL END DECLARE SECTION; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2IMAGE( CURRENT SERVER, :Img_buf, 'ASIS', '/employee/images/ajones.bmp', /* store image in server file */ 'Anita''s picture') );
如果是儲存伺服器檔案的物件,請指定常數 MMDB_STORAGE_TYPE_INTERNAL, 將物件儲存為資料庫表格中的 BLOB。
如果要儲存物件並將其內容存放在伺服器檔案中, 請指定常數 MMDB_STORAGE_TYPE_EXTERNAL。MMDB_STORAGE_TYPE_INTERNAL 有整數值 1。 MMDB_STORAGE_TYPE_EXTERNAL 有整數值 0。
例如,在下列 C 應用程式中會將音效片段儲存在伺服器檔案中。 來源音效內容已存放在伺服器檔案中。儲存作業將檔名置於資料庫內,使您可透過 SQL 陳述式存 取檔案。
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2AUDIO( CURRENT SERVER, '/employee/sounds/ajones.wav', 'WAVE', :hvStorageType, /* store audio in server file */ 'Anita''s voice') );