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

Bookmark問題

 
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-23 15:28:42 IP:60.248.xxx.xxx 未訂閱
請問還有什麼方式可以解決?
此段程式在計算均價(其實你會說利用SQL COMMAND來完成均價,但我有特殊原因必需如下撰寫)
其實我想如果可以COPY某一筆RECORD並且可以修改其某幾個欄位即可解決我的問題,但這方面我不是很了解做法,請大大指教
While Not DB_Oktx_Qry.Eof do begin
if bSort_Mark then begin
if (DB_Oktx_Qry.FieldByName('O_ACNO').AsInteger <> wk_Acno) or
(DB_Oktx_Qry.FieldByName('O_TRADE_KIND').AsInteger <> wk_Trade_Kind) or
(DB_Oktx_Qry.FieldByName('O_COMPANY_NO').AsString <> wk_Company_No) then begin
if wk_Acno <> 0 then begin
wk_Price := wk_Amt / wk_Stock_Nos;
DB_Oktx_Qry.GotoBookmark(bm);
DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger := wk_Stock_Nos; --> Error message: DataSet not is Edit or Insert mode
DB_Oktx_Qry.FieldByName('O_TOTAL_AMT').AsInteger := wk_Amt;
tsFile1.Add(GetListData(sFund_Unit,'A01',DB_Oktx_Qry));
DB_Oktx_Qry.FreeBookmark(bm);
wk_Stock_Nos := 0; wk_Amt := 0;
end;
bm := DB_Oktx_Qry.GetBookmark;
wk_Acno := DB_Oktx_Qry.FieldByName('O_ACNO').AsInteger;
wk_Trade_Kind := DB_Oktx_Qry.FieldByName('O_TRADE_KIND').AsInteger;
wk_Company_No := DB_Oktx_Qry.FieldByName('O_COMPANY_NO').AsString;
wk_Stock_Nos := wk_Stock_Nos DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger;
wk_Amt := wk_Amt DB_Oktx_Qry.FieldByName('O_TOTAL_AMT').AsInteger;
end;
end;
DB_Oktx_Qry.Next;
end;
whyzn
中階會員


發表:46
回覆:149
積分:54
註冊:2002-06-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-23 17:26:53 IP:218.210.xxx.xxx 未訂閱
是否要把 DB_Oktx_Qry 的 requestLive 設為 true
而且???????????????? DB_Oktx_Qry.GotoBookmark(bm);
DB_Oktx_Qry.Edit;
???????????????? DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger := wk_Stock_Nos; --> Error message: DataSet?
DB_Oktx_Qry.POst;

試試
===================引 用 文 章===================

請問還有什麼方式可以解決?
此段程式在計算均價(其實你會說利用SQL COMMAND來完成均價,但我有特殊原因必需如下撰寫)
其實我想如果可以COPY某一筆RECORD並且可以修改其某幾個欄位即可解決我的問題,但這方面我不是很了解做法,請大大指教
? While Not DB_Oktx_Qry.Eof do? begin
??????? if bSort_Mark then begin
?????????? if (DB_Oktx_Qry.FieldByName('O_ACNO').AsInteger <> wk_Acno) or
????????????? (DB_Oktx_Qry.FieldByName('O_TRADE_KIND').AsInteger <> wk_Trade_Kind) or
????????????? (DB_Oktx_Qry.FieldByName('O_COMPANY_NO').AsString <> wk_Company_No) then begin
????????????? if wk_Acno <> 0 then begin
???????????????? wk_Price := wk_Amt / wk_Stock_Nos;
???????????????? DB_Oktx_Qry.GotoBookmark(bm);
???????????????? DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger := wk_Stock_Nos; --> Error message: DataSet?not is Edit or Insert mode
???????????????? DB_Oktx_Qry.FieldByName('O_TOTAL_AMT').AsInteger := wk_Amt;
???????????????? tsFile1.Add(GetListData(sFund_Unit,'A01',DB_Oktx_Qry));
???????????????? DB_Oktx_Qry.FreeBookmark(bm);
???????????????? wk_Stock_Nos := 0; wk_Amt := 0;????????????????
????????????? end;
????????????? bm := DB_Oktx_Qry.GetBookmark;
????????????? wk_Acno := DB_Oktx_Qry.FieldByName('O_ACNO').AsInteger;
????????????? wk_Trade_Kind := DB_Oktx_Qry.FieldByName('O_TRADE_KIND').AsInteger;
????????????? wk_Company_No := DB_Oktx_Qry.FieldByName('O_COMPANY_NO').AsString;
????????????? wk_Stock_Nos := wk_Stock_Nos DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger;
????????????? wk_Amt := wk_Amt DB_Oktx_Qry.FieldByName('O_TOTAL_AMT').AsInteger;
?????????? end;
??????? end;
???? DB_Oktx_Qry.Next;
? end;
------
●○○○○○●○○○○○●
竹密不妨水過,山高無礙雲飛
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-24 08:21:53 IP:60.248.xxx.xxx 未訂閱
感謝你的回覆,但這一個query是join好多的table所以它會有這樣的error message在我意料
其實我最主要想是否有辦法copy某一筆record到某一query中並可編輯某幾個欄位
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-24 11:22:42 IP:218.163.xxx.xxx 未訂閱
那為何不用clientdataset呢?

可以edit,post都沒問題(無論你SQL join多少table)..不要applyupdate就好

這樣就可解決你的問題!
------
星期一,二...無窮迴圈@@
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-11-30 15:58:41 IP:60.248.xxx.xxx 未訂閱

===================引 用 文 章===================
那為何不用clientdataset呢?

可以edit,post都沒問題(無論你SQL join多少table)..不要applyupdate就好

這樣就可解決你的問題!

非常感謝pgdennis大大的指教....
個人這幾天也研究了M/S架構,也爬文了KTOP想關文章(ClientDataSet),可能大部份時間都在寫C/S 再加上對ClientDataSet元件不是很了解.
小弟有幾個地方不解 大部份文章都提到ClientDataSet.ApplyUpdate即可更新資料庫(但我不需要做這一動作)
目前我個人規劃 TADOQuery --> TDataSetProvider-->TClientDataSet
1.那我要如何讀資料 adoquery.next 嗎?
2.一樣如下給值嗎?
DB_Oktx_Qry.FieldByName('O_STOCK_NOS_1').AsInteger := wk_Stock_Nos;
DB_Oktx_Qry.FieldByName('O_TOTAL_AMT').AsInteger := wk_Amt;

還請各位大大指教
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-12-04 08:49:14 IP:60.248.xxx.xxx 未訂閱
有人可以幫忙回答我的問題嗎.....非常感謝....^^
corey
一般會員


發表:34
回覆:44
積分:14
註冊:2003-04-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-12-07 10:47:48 IP:60.248.xxx.xxx 未訂閱
在自推一下 那位大大可以幫忙解惑?.....感謝啦
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-12-07 17:00:53 IP:210.65.xxx.xxx 未訂閱
1.
ClientDataSet1.Next;
2.
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('O_STOCK_NOS_1').AsInteger := wk_Stock_Nos;
ClientDataSet1.FieldByName('O_TOTAL_AMT').AsInteger := wk_Amt;
ClientDataSet1.Post;




Fishman
------
Fishman
系統時間:2024-05-19 18:03:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!