procedure TForm7.Button3Click(Sender: TObject);
var
tmp: string;
sum: Integer;
bk: TBookMark;
begin
sum := 0;
bk := ADOQuery1.GetBookmark;
ADOQuery1.DisableControls;
ADOQuery1.First;
while not ADOQuery1.Eof do
//begin
// if ADOQuery1.FieldByName('訂單型別').AsString='正常' then
begin
tmp := ADOQuery1.FieldByName('訂單數').AsString;
sum := sum+StrToIntDef(tmp,0);
end;
ADOQuery1.Next;
end;
//-------------下行出錯!----------
ADOQuery1.GotoBookmark(bk);
ADOQuery1.FreeBookmark(bk);
ADOQuery1.EnableControls;
edit1.text := IntToStr(sum);
end;
uj5u.com熱心網友回復:
你是想重繪后游標行不變嗎?使用 ado.refresh即可。是不是應該這樣:
ADOQuery1.EnableControls;
ADOQuery1.GotoBookmark(bk);
ADOQuery1.FreeBookmark(bk);
uj5u.com熱心網友回復:
以下出錯:ADOQuery1.EnableControls;
親,出錯了!
uj5u.com熱心網友回復:
不看錯誤提示的嗎? begin和end 不對應,建議裝個cnpack工具吧uj5u.com熱心網友回復:
樓主哥們和我開始學的時候一樣,到處都是錯誤,無從下手,后來又回傳去好好的讀了一下基本的規定和陳述句,雖然現在深一點的還不會,基礎的基本會自己找錯了。繼續努力吧,樓主!
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
游標的作用就是記住記錄集當前記錄行所處位置,像你這段代碼涉及記錄集遍歷,采用游標記錄位置,然后記錄集跟UI控制元件解綁,目的是避免界面那邊刷,用戶體驗不好,其次也影響效率。資料遍歷結束后,回到原先記錄所指的位置,恢復UI資料感知控制元件系結。uj5u.com熱心網友回復:
請問有更好的辦法嗎?我現在是這樣處理。
var
tmp: string;
sum,heji: Integer;
bk: TBookMark;
begin
adoquery1.first;
while not adoquery1.eof do
begin
heji:=heji+adoquery1.fieldbyname('訂單數').Asinteger;
adoquery1.next;
end;
label1.Caption:= IntToStr(heji);
//FieldByName('完成數').AsInteger :=FieldByName('完成數').AsInteger+StrToIntDef(fields[i].asstring,0);
//FieldByName('未完成').AsInteger:=StrToIntDef(FieldByName('訂單數').AsString,0) -StrToIntDef(FieldByName('完成數').AsString,0);
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25959.html
標籤:語言基礎/算法/系統設計
上一篇:有人用delphi做pcl嗎?
