線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2323
推到 Plurk!
推到 Facebook!

BDE 使用 TMemoField 在 Oracle 10g 上的存檔問題

答題得分者是:herbert2
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-08 11:38:02 IP:210.245.xxx.xxx 訂閱
各位前輩好:

小弟在Oracle 10g 使用varchar2(2000),BDE -> TQUERY -> TMemoField 資料可以寫入沒問題,

但總是會出現錯誤訊息:

General SQL Error.
ORA-01410:Invalid ROWID

請問有解決的辦法嗎?謝謝!
------
受人點滴,湧泉以報。
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-08 12:33:18 IP:210.66.xxx.xxx 未訂閱
檢查存入的型別是不是與資料庫相同
或是調整資料庫的型別試試看

===================引 用 SwingGuppy 文 章===================
各位前輩好:

小弟在Oracle 10g 使用varchar2(2000),BDE -> TQUERY -> TMemoField 資料可以寫入沒問題,

但總是會出現錯誤訊息:

General SQL Error.
ORA-01410:Invalid ROWID

請問有解決的辦法嗎?謝謝!
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-08 14:28:49 IP:210.245.xxx.xxx 訂閱
用SQL Monitor 看, 果然是回傳不同型別...

SQL Blob IO: ORACLE - Return blob data

索性把欄位改成 Blob, 可惜BDE好像不認識它...

===================引 用 GrandRURU 文 章===================
檢查存入的型別是不是與資料庫相同
或是調整資料庫的型別試試看

===================引 用 SwingGuppy 文 章===================
各位前輩好:

小弟在Oracle 10g 使用varchar2(2000),BDE -> TQUERY -> TMemoField 資料可以寫入沒問題,

但總是會出現錯誤訊息:

General SQL Error.
ORA-01410:Invalid ROWID

請問有解決的辦法嗎?謝謝!
------
受人點滴,湧泉以報。
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-10-08 15:48:57 IP:203.75.xxx.xxx 未訂閱
BDE有提供BLOB支援啊,不過有單次容量大小的限制就是了
如果是存圖檔的話,不如就存在HD中統一管理會比較好

開一個欄位存檔案路徑吧!
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-08 16:01:17 IP:210.245.xxx.xxx 訂閱
謝謝大大的回覆,

基本上我這邊的功能要求還是要用文字型態欄位作表單描述(製造單表頭),

原本是用TStringField,只是USER要求使用超過256個字元,

於是我才開2000個字給他們輸,結果TStringField 256字以上 會自動變成 TMemoFiled,

才會造成目前的窘境,如果此路不行,還得再找替代方案,感謝!
------
受人點滴,湧泉以報。
編輯記錄
SwingGuppy 重新編輯於 2008-10-08 16:03:07, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-10-08 17:12:57 IP:210.66.xxx.xxx 未訂閱
如果BLOB不行的話
那CLOB呢?
herbert2
尊榮會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-10-08 17:58:38 IP:211.72.xxx.xxx 訂閱
這是 BDE 的問題, 應是無解.
小弟的做法是:用多個 VARCHAR2(254), 於 AfterScroll() 合併入 TMemo,
再於 BeforePost() 從 TMemo 切成多欄存入 TQuery 各 Field,
應該算是很拙劣的方法, 但可以解決問題.

===================引 用 SwingGuppy 文 章===================
謝謝大大的回覆,

基本上我這邊的功能要求還是要用文字型態欄位作表單描述(製造單表頭),

原本是用TStringField,只是USER要求使用超過256個字元,

於是我才開2000個字給他們輸,結果TStringField 256字以上 會自動變成 TMemoFiled,

才會造成目前的窘境,如果此路不行,還得再找替代方案,感謝!
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-10-08 23:41:40 IP:220.139.xxx.xxx 未訂閱
題外話
ODAC或許是個不錯的好東西,不過要付錢就是了
內建的DBX不知道有沒有這方面的問題...如果可以的話,請SwingGuppy大試試看,再分享心得吧 ^ ^Y

(herbert2大:不用付錢就能解決問題的方法就是好方法的啦!)

SwingGuppy大加油,您正在碰小弟我想摸還摸不到的領域,真是讓人羨慕啊!(Oracle 10G啊~~~~~流口水中)
請一定要堅持下去喔!加油!
SwingGuppy
初階會員


發表:1
回覆:18
積分:38
註冊:2006-12-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-10-09 17:04:50 IP:210.245.xxx.xxx 訂閱
感謝兩位大大的回覆:

GrandRURU:

因為案子有押時時間,沒有再繼續測其他的方式,

我想問題的源頭是卡在BDE的限制,

因為測試下來跟DBX元件無關(資料是可以存取的),謝謝。

herbert2:

不管技巧優劣,能夠找到辦法已經不錯了,

黑貓、白貓會抓老鼠的就是好貓。

感謝兩位的幫忙,我想分數就給 herbert2
------
受人點滴,湧泉以報。
系統時間:2024-04-27 10:51:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!