Delphi + PostgreSQL 對於 Blob (bytea) 欄位的處理方式 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
PostgreSQL 並不像其他的 DBMS 一樣,有 BLOB 欄位,最接近 BLOB 的資料型態,是 bytea (byte array)
但是,bytea 欄位會被 Delphi 當成 TVarBytesField。而不是 TBlobField,使得 TBlobField 才有的好用方法 如 LoadFromFile, LoadFromStream, SaveToFile, SaveToStrteam 等都沒辦法使用 經過幾番搜尋,找到了使用 ODBC 的設定,把 bytea 欄位假裝成 BLOB 欄位的方法。如下: 1. 開啟 ODBC 設定,選取你設定好的 PostgreSQL 資料來源 2. 按下「設定」按鈕,出現資料來源設定視窗 3. 按下「Datasource」按鈕,出現 Advanced Options 視窗 4. 按下「Page2」按鈕,切換到第二頁 5. 勾選「byea as LO」,按「OK」關閉 Advanced Options 視窗,按「Save」儲存 這樣,ODBC 設定就完成了 接下來,把資料集元件的 SQL/CommandText 屬性改動一下 (例如加個空格),再重新抓取欄位,就會是 TBlobField 了。 如不改動 SQL/CommandText,重新抓取欄位還會是舊的 以上請各位參考,希望有所幫助。
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
lucky4wj
一般會員 發表:1 回覆:11 積分:17 註冊:2008-11-06 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |