全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1908
推到 Plurk!
推到 Facebook!

Delphi + PostgreSQL 對於 Blob (bytea) 欄位的處理方式

 
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-06-05 09:35:49 IP:114.35.xxx.xxx 訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-06-05 10:15:53 IP:111.249.xxx.xxx 未訂閱
 好文!

我能按個「讚」嗎?
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-06-05 23:08:05 IP:122.126.xxx.xxx 訂閱

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
lucky4wj
一般會員


發表:1
回覆:11
積分:17
註冊:2008-11-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-09-12 09:14:43 IP:112.85.xxx.xxx 未訂閱

herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-09-12 23:12:22 IP:202.39.xxx.xxx 訂閱
!足感
系統時間:2024-03-29 17:39:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!