Image、Audio 及 Video Extenders 管理與程式設計

DB2Image


影像 音效 視訊
X    

將影像內容儲存在資料庫表格中。影像來源可存放於從屬站緩衝區、從屬站檔案、 或伺服器檔案中。影像可以 BLOB 的形式儲存在資料庫表格或伺服器檔案中 (供 資料庫表格參照)。 影像來源可以位於所支援的格式中,這種情形下, DB2Image Extender 會識別儲存體的屬性,或在不支援的格式中, 必須在 UDF 中指定這些屬性。

併入檔

dmbimage.h

語法

儲存緩衝區或從屬站檔案的內容

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_file--,--comment--)--------------------------------><
 

語法

儲存伺服器檔案的內容

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----stortype--,--comment--)-----------------------------------><
 

語法

儲存緩衝區或從屬站檔案中含有使用者提供屬性的內容

>>-DB2Image--(--dbname--,--content--,--target_file--,----------->
 
>----comment--,--attrs--,--thumbnail--)------------------------><
 

語法

儲存伺服器檔案中含有使用者提供屬性的內容

>>-DB2Image--(--dbname--,--source_file--,--stortype--,--comment--,-->
 
>---attrs--,--thumbnail--)-------------------------------------><
 

語法

儲存緩衝區或從屬站檔案的內容,並做格式轉換

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_format--,--target_file--,--comment--)--------------><
 

語法

儲存伺服器檔案內容,並做格式轉換

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----target_format--,--target_file--,--comment--)--------------><
 

語法

儲存緩衝區或從屬站檔案的內容,並做格式轉換及其他變更

>>-DB2Image--(--dbname--,--content--,--source_format--,--------->
 
>----target_format--,--conversion_options--,--target_file--,---->
 
>----comment--)------------------------------------------------><
 

語法

儲存伺服器檔案內容,並做格式轉換及其他變更

>>-DB2Image--(--dbname--,--source_file--,--source_format--,----->
 
>----target_format--,--conversion_options--,--target_file--,---->
 
>----comment--)------------------------------------------------><
 

參數 (資料類型)

dbname (VARCHAR(18))
目前連接的資料庫名稱,可由 CURRENT SERVER 特別暫存區指示。

content (BLOB(2G) AS LOCATOR)
含有影像內容的主變數。 主變數可以是類型 BLOB、BLOB_FILE 或 BLOB_LOCATOR。 DB2 會將內容的資料類型提升為 BLOB_LOCATOR, 並將 LOB 定位器傳遞到 DB2Image UDF。

source_format (VARCHAR(8))
來源影像格式。您可以指定 NULL 值、空白字串或字串 ASIS; 在其中一種情形下,Image Extender 會嘗試自動決定來源格式。 影像將以其和來源相同的格式存檔。 有關支援的影像格式,請參閱表 4

target_format (VARCHAR(8))
儲存後的影像格式。來源影像格式將被轉換成合適的格式。

target_file (LONG VARCHAR)
目標伺服器檔案的名稱 (用於伺服器檔案的儲存體), 或 NULL 值或空白字串 (用於作為 BLOB 的資料庫表格中儲存體)。 目標檔名可以是完整名稱。 如果名稱不完整,則使用伺服器上的 DB2IMAGESTORE 和 DB2MMSTORE 環境變數來尋找檔案。 如果使用格式轉換儲存影像, 則必須在 DB2IMAGEPATH 和 DB2MMPATH 環境變數中指定目標檔的路徑。

source_file (LONG VARCHAR)
來源伺服器檔案的名稱。來源檔名稱可以是完整名稱或不完整名稱; 但不能是 NULL 值或空白字串。 如果名稱不完整, 則使用伺服器上的 DB2IMAGEPATH 及 DB2MMPATH 環境變數來尋找檔案。

stortype (INTEGER)
一種指示影像儲存位置的值。 常數 MMDB_STORAGE_TYPE_INTERNAL (值=1), 指示影像將被存入 BLOB 資料庫中; 常數 MMDB_STORAGE_TYPE_EXTERNAL (值=0), 指示影像內容將被存入伺服器檔案中 (指示從資料庫中)。

comment (LONG VARCHAR)
使用影像儲存的註解。

attrs (LONG VARCHAR FOR BIT DATA)
影像屬性。

thumbnail (LONG VARCHAR FOR BIT DATA)
影像的縮圖。

conversion_options (VARCHAR(100))
指定儲存影像時所要引用的一些變更,例如旋轉和壓縮。 有關支援的轉換選項,請參閱表 5

回覆值 (資料類型)

影像 handle (DB2IMAGE)

範例

將含有 Anita Jones 的影像記錄插入員工表格。影像來源是位於從屬站緩衝區中。 將影像存入表格作為 BLOB:

EXEC SQL BEGIN DECLARE SECTION
     SQL TYPE IS BLOB (2M) hvImg
  EXEC SQL END DECLARE SECTION;
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2IMAGE(
         CURRENT SERVER,
         :hvImg,
         'ASIS',
                 CAST(NULL as LONG VARCHAR),
         
         'Anita''s picture'));

將含有 Robert Smith 的影像記錄插入員工表格。 影像來源是位於伺服器檔案中。員工表格記錄會指向檔案。 存檔時,將影像格式從 BMP 轉換成 GIF。並將影像修剪成寬 110 圖點和高 150 圖點,以及使用 LZW 類型壓縮法來壓縮影像:

EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '384779',
      'Robert Smith',
      DB2IMAGE(
         CURRENT SERVER,
         '/employee/pictures/rsmith.bmp',
        'BMP',
        'GIF',
         '-x 110 -y 150 -c 14',
         '',
         'Robert"s picture'));

將含有 Robert Smith 的影像記錄插入員工表格。 位於伺服器檔案中的來源影像,其具有使用者定義的格式、高 640 圖點及寬 480 圖點。 將影像存成 BLOB:

EXEC SQL BEGIN DECLARE SECTION;
     long hvStorageType;
struct {
       short len;
         char data [400];
}hvImgattrs;
  EXEC SQL END DECLARE SECTION;
 
DB2IMAGEATTRS    *pimgattr;
 
hvStorageType = MMDB_STORAGE_TYPE_INTERNAL;
 
pimgattr = (DB2IMAGEATTRS *) hvImgattrs.data;
strcpy(pimgattrt>cFormat,"FormatI");
pimgattr>width=640;
pimgattr>height=480;
hvImgattrs.len=sizeof(DB2IMAGEATTRS);
 
EXEC SQL INSERT INTO EMPLOYEE VALUES(
      '128557',
      'Anita Jones',
      DB2IMAGE(
         CURRENT SERVER,
          '/employee/images/ajones.bmp',
        :hvStorageType,
          'Anita''s picture',
          :hvImgattrs,
          CAST(NULL as LONG VARCHAR))
       );


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]