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

Dbexpress 的SQLQuery 存取發生 ReadOnly 問題

尚未結案
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-10 00:13:39 IP:211.75.xxx.xxx 未訂閱
在下用元件SQLconnect-> SQLQuery(Dbexpress)-> Provider->ClientDataSet ->DataSource(Data Access)->DBGrid(Data Control) 連結 MSSQL Server . 當下達 ClientDataSet.ApplyUpdates(-1) 時 , 出現SQLQuery 存取發生 ReadOnly 問題 . 請教各位先進該如何解決 ? PS . SQLQuery 的 GetMetaData 已設定為 True .
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-10 00:20:44 IP:61.230.xxx.xxx 未訂閱
Hi您好 一般來說 撈取一個TABLE, update varchar欄位的值應該OK..    可否先檢查 1.SQL是否有join兩個以上的table?? 2.是否有特殊欄位型態, 如BLOB???    可參考之前討論 http://delphi.ktop.com.tw/topic.php?topic_id=36200    
引言: 在下用元件SQLconnect-> SQLQuery(Dbexpress)-> Provider->ClientDataSet ->DataSource(Data Access)->DBGrid(Data Control) 連結 MSSQL Server . 當下達 ClientDataSet.ApplyUpdates(-1) 時 , 出現SQLQuery 存取發生 ReadOnly 問題 . 請教各位先進該如何解決 ? PS . SQLQuery 的 GetMetaData 已設定為 True .
~悠遊法國號~
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-10 00:32:39 IP:211.75.xxx.xxx 未訂閱
法國號網友你好 . 我存取資料很平常 , 只有文字,數字,日期而已 . SQL 為 SELECT FLD1,FLD2,.... FROM TABLE
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-10 18:48:23 IP:203.204.xxx.xxx 未訂閱
引言: 我存取資料很平常 , 只有文字,數字,日期而已 . SQL 為 SELECT FLD1,FLD2,.... FROM TABLE
stillalive 你好 不知Select 的FLD1,Fld2.....是否包含該表格的Primary Key,若未包含Primary Key就有可能無法更新資料。
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-11 23:38:31 IP:211.75.xxx.xxx 未訂閱
chance36 網友你好 . 我現在改用ADO元件 , 這問題很奇怪就消失 . 應該是dbExpress自己的bug .
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-12 08:51:58 IP:218.163.xxx.xxx 未訂閱
引言: 我現在改用ADO元件 , 這問題很奇怪就消失 . 應該是dbExpress自己的bug .
這可不是bug, 看看online help吧, TSQLQuery本來就是readonly的元件,不只Readonly, 還是單向(只能next不能prior) 要更新資料必須透過額外執行之update sql 以你的情況來說實際負責更新資料的應該是TDataSetProvider而不是TSQLQueruy. 檢查一下provider之ResolveToDataSet是否為True, 改成false,讓Provider幫你update就可以了
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-13 00:22:16 IP:211.75.xxx.xxx 未訂閱
ccchen 大大你好 在下目標是 3-tier 架構 , DataProvider 應在 AppServer 端 , 我看過李維大師討論 DataProvider Update 章節 , 內容實在過於煩瑣 , 而且如何將Client端產生SQL指令丟到APPSERVER DataProvider 執行 ?
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-14 13:48:35 IP:203.66.xxx.xxx 未訂閱
引言: ccchen 大大你好 在下目標是 3-tier 架構 , DataProvider 應在 AppServer 端 , 我看過李維大師討論 DataProvider Update 章節 , 內容實在過於煩瑣 , 而且如何將Client端產生SQL指令丟到APPSERVER DataProvider 執行 ? PS 李維大師用SQL語法更新資料庫 , 不用 ApplyUpdates . 發表人 - stillalive 於 2004/04/13 02:06:52
stillalive 您好 : 如果要發展 3-Tier 那應該利用 DataSnap 技術會蠻方便的... 如果用 dbExpress 的元件嫌麻煩的話,可以使用 TSimpleDataSet.. 要規劃設計 Multi-Tier 需要考慮許多層面,麻煩是避免不了的... ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ----
系統時間:2024-05-10 0:28:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!