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

MS SQL 的 text 資料型別

答題得分者是:Mickey
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-11 20:19:14 IP:211.75.xxx.xxx 未訂閱
請問 MS SQL 中的 text 資料型別問題? 我有一個資料表,有一個欄位用到 text 資料型別。 我在 delphi 中用一個元件 TDBMemo 來對應讀取他。 可以讀取也可以寫入資料。 可是我沒有辦法更改他的值。 要怎樣才能更改裡面的值。 Eric Lin
------
Eric Lin
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-12 09:01:13 IP:61.219.xxx.xxx 未訂閱
使用 MS SQL 之 writetext command Sample code as following : DECLARE @ptrval binary(16) SELECT @ptrval = TEXTPTR(pr_info) FROM pub_info pr, publishers p WHERE p.pub_id = pr.pub_id AND p.pub_name = 'New Moon Books' WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!' GO
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-12 11:45:12 IP:211.75.xxx.xxx 未訂閱
可是 WriteText 可以在Delphi 裡面使用嗎。 或是 Delphi 有類似的函數。 說真的我看不太懂。 Eric Lin
------
Eric Lin
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-12 11:56:02 IP:61.219.xxx.xxx 未訂閱
writetext 是 MS SQL T-SQL Statement. 你可在 TQuery.SQL 中 add SQL Statement 後, 用 TQuery.execsql method.
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-12 13:40:13 IP:61.219.xxx.xxx 未訂閱
READTEXT 只是其中一種方法, DBMemo 應可 read/write, 你有檢查 TDataSet.RequestLive=true)/ TField.readonly=Flase/ TDBMemo.readonly=False
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-12 16:24:06 IP:211.75.xxx.xxx 未訂閱
Delphi 我找不到 ReadText 這個東東。 DBMemo 可以讀出資料,也可以寫入資料。 我目前是用DBMemo 在測試。 我是看看如果有其他問題再貼上。 Eric Lin
------
Eric Lin
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-13 14:26:02 IP:61.219.xxx.xxx 未訂閱
你應該是指,同一筆資料無法 Update 二次(含)以上 如果有 Error Message 請將它 po 上來 該 DataSet AfterPost Event Add Code as following: procedure TForm1.Query1AfterPost(DataSet: TDataSet); var v : variant; begin v := Query1['SS_ID;ST_ODR']; // 此 Sample SS_ID ST_ODR 欄 唯一 with Query1 do begin try DisableControls; Close; Open; //需重新讀取Server的資料 Locate('SS_ID;ST_ODR', v, []); //至Key值的位置 finally EnableControls; end; end; end; 這是因為 MSSQL TEXT/IMAGE DataType 事實上是存 該 Pointer(而非Data), 若你不重新 Open , 該 Pointer 被第一次更新後,將變 Invalid. 重新 Open and Locate to origin record 有點笨, 效率差. TClientDataSet / TBDEClientDataSet 應是較佳的選擇.
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-14 09:49:16 IP:211.75.xxx.xxx 未訂閱
謝謝 Mickey 的回答。 我現在還沒時間測試。 再次的感謝您 Eric Lin
------
Eric Lin
系統時間:2024-06-26 8:54:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!