一個有關ado的問題(100分)

  • 主题发起人 主题发起人 ywjjj
  • 开始时间 开始时间
Y

ywjjj

Unregistered / Unconfirmed
GUEST, unregistred user!
我作分布式應用系統時用ado作數據引擎出現這樣一個問題,在新增資料時一切正常,
異動時資料有時無法異動,有時報錯:'Change Record is used by anther user',
有時資料不報錯但資料沒有異動過來,有時又可正確異動資料.
請各位高手指點迷津,謝謝!
注;1.當我在 tdatasetprovider的beforeupdaterecord事件里查詢變化的字段之newvalue時
資料的确有變化.
2.tdatasetprovider:relsovetodate: true
3.tadodataset:cursorlocation: cluse client
cursor: ctstatic
locktype :itoptimistic
4.該項作業只我一個人用.
 
网络状况不好
 
可我用BDE可正常運行!
 
你的 CursorLocation设置为什么 ?
 
因为用到了三层结构,
所以你得在中间层上把数据库中的字段设置先取过来,
不然有时当然不给你修改数据了。
因为字段类型不对。
很多书上讲这个的
 
回Hexi 我的 CursorLocation设置是基於李維的書<<實戰delphi5.x ado/mts/com+....>>
現彔原話如下:
Ado的cursorlocation分為兩類,一種是用戶端的Cursorlocation,另外一種便是位於伺
服端的cursorlocation,那什懡是cursorlocation?簡單的說就是當用戶端應用程式存取
了一些資料後,這些資料是暫時存在什懡地方? 如果這些暫時儲存的資料是儲存在用戶端
的ado驅動程式記憶體當中,由用戶端的ado引擎管理的話,那懡就稱為用戶端的cursor,
相反的,如果這些暫時儲存的資料是儲存在後端的資料庫當中,由資料庫本身管理的話,
那懡就稱為伺服端cursor...
基本上client-side cursor在用戶端需要比較多的記億體,但會啟動比較少的網路
roudtrip,而且對如資料來源伺服器負荷較輕.由於目前一般來說用戶端的機器都有足
夠多的記記體因此只要程式師謹慎的使用,會讓程式執行的非常有效率.如果再搭配適當
的cache size特性值的設定以及client-size cursor的話,那懡不管是主從架構或是
internet/inteanet,電子商務應用系統都是合適的用法.
server-side cursor對於來源伺服器的能力來說是一個非常嚴格的考驗......
基本上如果沒有特別的理由,我並不建議程式師使用,千萬不要人云亦云,以為server_size
cursor是萬能的良葯.
(現廣州的各書店好像還沒有此書,故我抄了以上一段話)


 
ywjjj:
你好,我看到你能拥有李维的这本书,很羡慕,能否帮我买一本,感激不尽。
我的邮箱:packeding@163.net,可否联系我?谢谢!
 
3p:
我們的書是從台灣帶過來的,一個單位只有一本.只能說聲對不起了.
據說簡體版的<<實戰delphi5.x ado/mts/com+....>>已經出版,您可以查閱網站
http://www.inprise.com.cn.
祝您好運!
 
ywjjj:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。

 
接受答案了.
 
后退
顶部