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

請問從資料庫叫出來的資料列間計算的指令

答題得分者是:scotthsiao
chateau_frank
一般會員


發表:20
回覆:32
積分:10
註冊:2005-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-24 13:20:08 IP:211.20.xxx.xxx 未訂閱
各位大大午安 這個問題不知道這樣問對不對,我的意思如下:
procedure TForm1.ComboBox1Change(Sender: TObject);
var selectcode:string;
begin
  selectcode := ComboBox1.Text;
  with AdoQuery1 do
    begin
    AdoQuery1.Active := False;
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.Add('select * from bankcontrol');
    AdoQuery1.Sql.Add('where currencycode = ''' selectcode '''');
    AdoQuery1.SQL.Add('Order by buyingdate');
    AdoQuery1.Active := True;
    end;
  Label2.Caption := '正在檢視'   selectcode   '匯率中,目前餘額為:';
end;
我由AdoQuery下SQL找出符合的資料列,想從這些資料列中去跑判斷迴圈,找出符合條件的資料列來計算我要的數據,我想請問一開始用AdoQuery元件是正確的方法嗎?如果是,接下來應該怎麼寫指令計算餘額?如果不是,請大大們告知該用何元件來解決,謝謝。
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-24 13:46:43 IP:211.74.xxx.xxx 未訂閱
如果下 SQL 指令就可以得到答案,就不用再使用迴圈來計算了。
chateau_frank
一般會員


發表:20
回覆:32
積分:10
註冊:2005-07-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-24 14:19:37 IP:211.20.xxx.xxx 未訂閱
scotthsiao兄 我知道您的意思,但是有些資料需求有時無法完全用SQL指令解決,RECORDSET集合的相互關係計算也是很有需求的,在DELPHI中,我不知該用什麼指令來處理,麻煩指點一下,感謝。
T.J.K
中階會員


發表:3
回覆:35
積分:57
註冊:2005-06-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-24 15:05:35 IP:211.78.xxx.xxx 未訂閱
chateau_frank 您好: 我也不太了解意思,但先貼我出我認為你要問的問題好了 < class="code"> var i : Integer; selectcode:string; begin selectcode := ComboBox1.Text; i := 0; with ADOQuery1 do begin Active := False; SQL.Clear; SQL.Add('select * from bankcontrol'); Sql.Add('where currencycode = ''' selectcode ''''); Open; if RecordCount <> -1 then begin while not Eof do begin i := i FieldByName('餘額').AsInteger; Next; end; end; end; Label2.Caption := '正在檢視' selectcode '匯率中,目前餘額為:' IntToStr(i); 取之於ktop 用之於ktop
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-24 15:07:05 IP:211.74.xxx.xxx 未訂閱
可以試試以下方式 ,逐筆計算    
ADOQuery1.First;    While not ADOQuery1.Eof do
begin
  i := ADOQuery1.FieldByName('fieldname').AsInter ....; 
  j := .......
  ............      ADOQuery1.Next;
 end;     
T.J.K
中階會員


發表:3
回覆:35
積分:57
註冊:2005-06-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-24 15:23:09 IP:211.78.xxx.xxx 未訂閱
chateau_frank 您好: 我也不太了解意思,但還是先貼出來看看 
var
  i : Integer;
  selectcode:string;
begin
  selectcode := ComboBox1.Text;
  i := 0;
  with ADOQuery1 do
  begin
    Active := False;
    SQL.Clear;
    SQL.Add('select * from bankcontrol');
    Sql.Add('where currencycode = ''' selectcode '''');
    SQL.Add('Order by buyingdate');
    Active := True;
    if RecordCount <> -1 then
    begin
      while not Eof do
      begin
        i := i   FieldByName('餘額欄位名稱').AsInteger;
        Next;
      end;
    end;
  end;
  Label2.Caption := '正在檢視'   selectcode   '匯率中,目前餘額為: '   IntToStr(i);
取之於ktop 用之於ktop
chateau_frank
一般會員


發表:20
回覆:32
積分:10
註冊:2005-07-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-24 15:38:13 IP:211.20.xxx.xxx 未訂閱
T.J.K.兄與SCOTT兄 感謝兩位熱心幫忙,沒錯,我需要的就是這種方式,雖然兩位的方法不太相同,但跑出來的結果都是我想要的,再次謝謝兩位,未來還請兩位多指導。
系統時間:2024-06-25 13:52:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!