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

Could anybodies give me help ??

尚未結案
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-24 17:42:24 IP:203.184.xxx.xxx 未訂閱
Attached code always show "Record not found or locked by another user" ....., may be i want update both, or i dunno why .... p.s my chinese-input not good so i typing english but i am chinese. // >= #'
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-24 18:20:55 IP:203.184.xxx.xxx 未訂閱
the detail what i want to do is : Table A- -MemberID -CumulativePoint Table B- -MemberID -PointSinceSync For each A update A.CumulativePoint := A.CumulativePoint B.PointSinceSync update B.PointSinceSync : = 0 completed. I tried whole day .. and haven't find what is problem...
yachanga
資深會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-24 20:18:12 IP:211.74.xxx.xxx 未訂閱
I like to use SQL instead of Delphi component. Example:     Query1.close;  Query1.sql.text:='UPDATE A SET CumulativePoint= '        +'   Select C.CumulativePoint from '        +'   (select MEMBERid,SUN(PointSinceSync) CumulativePoint '        +'     from B GROUP BY MEMBERid) C '        +'   WHERE A.MEMBERid=C.MEMBERid   ';  Query1.execSQL;    Query1.close;  Query1.sql.text:='update B set PointSinceSync=0';   Query1.execSQL;    ~悠遊法國號~
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-24 23:47:31 IP:218.163.xxx.xxx 未訂閱
請問該欄位資料型態為何? 每一次都會發生還是偶而會發生一次? Server端資料庫為何? 連接資料庫是用ADO or BDE? 是否可告知, 以供判斷
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-25 10:13:55 IP:203.184.xxx.xxx 未訂閱
>>請問該欄位資料型態為何? Using MsAccess Table A- -MemberID (String) -CumulativePoint (LongInt) Table B- -MemberID (Sting) -PointSinceSync (LongStr) >>每一次都會發生還是偶而會發生一次? Actually, I do the same thing with other tables, it's ok. But in this table A, I never update sucess. >>Server端資料庫為何? MSAccess >>連接資料庫是用ADO or BDE? ADO
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-25 10:16:49 IP:203.184.xxx.xxx 未訂閱
>>請問該欄位資料型態為何? Using MsAccess Table A- -MemberID (String) -CumulativePoint (LongInt) Table B- -MemberID (Sting) -PointSinceSync (LongInt) <<<< Typing Error.......
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-25 11:46:11 IP:218.170.xxx.xxx 未訂閱
因為你的架構我沒有用, 我只能依我以前的經驗告訴你. 我用BDE連接, 後端為MSSQL, 當欄位型態為Float, 有時會發生類似你的狀態, "locked by another user" 後來去查詢原因, 是Float欄位在MSSQL長度為43(??有點忘了, 大慨是這個數字左右), 但BDE只支援15碼的長度, 有些數字你在Delphi看到是類似3.49, 但在MSSQL看到的郤是3.4899999999..., 所以在Post時, Delphi會先去比對欄位的舊內容是否相同, 若不相同則會認為該筆資料已被他人修改. 但因BDE的限制, 使得該欄位在前端之值與後端不同, 造成此問題. 所以我懷疑是否該欄位長度太大的前端顯示與後端不同造成此問題? 造成在存檔時誤以為資料被他人修改, 提供給你參考. 希望能對你有所幫助.
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-25 12:26:19 IP:203.184.xxx.xxx 未訂閱
But I tried to assign 0 to the fields just like that .. begin wdsClientDataSet1.Edit; wdsClientDataSet1.FieldValues['CumulativePoint'] := 0 wdsClientDataSet1.Post; wdsClientDataSet1.ApplyUpdates(0); <<<<<<<<<<< Error in here wdsDStrans.Edit; wdsDStrans.fieldvalues['PointSinceSync'] := 0; wdsDStrans.post; wdsClientDataSet1.Next; end; and the error still occured. that why i am so confusing about that....
Delilama
一般會員


發表:5
回覆:11
積分:3
註冊:2003-06-30

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-26 17:32:43 IP:203.184.xxx.xxx 未訂閱
Finally , i use Query suck like method provided by yachanga to do and it seem run well.
系統時間:2024-06-29 16:28:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!