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

如何加一

尚未結案
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-21 10:42:11 IP:61.63.xxx.xxx 未訂閱
各位前輩: 請問如何在我新增資料ㄉ時後,在編輯這個欄位找出最大ㄉ數字, 然後加一 謝謝 逃避不一定躲得過 面對不一定最難受 孤單不一定不快樂 得到不一定能長久 失去不一定不再有 轉身不一定最軟弱 別急著說別無選擇 別以為世上只有對與錯 許多事情的答案都不是只有一個 所以我們永遠有路可以走 你能找個理由難過 也一定能找到快樂 懂得放心的人找到輕鬆 懂得遺忘的人找到自由 懂得關懷的人找到朋友
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-21 11:18:33 IP:218.16.xxx.xxx 未訂閱
若你要自行編程,最普遍的做法是另立一 Query [Select Max(FieldName) from TableName;],並在原先的 table/query 的 AfterInsert 事件中加入 QueryMax.Active := false; QueryMax.Active := true; MyTable.FieldByName(FieldName).Value := QueryMax.Fields[0].Value 1; 不過,若你的數據庫將會多人同時運作,這是很不保險的,因為可能會超過一人取了同一個數字。較保險的做法是 將上面的程式碼搬到 BeforePost,可以大大 減少重複碼的機會。最保險的是使用 Transaction,更新失敗重新取碼再更新。 若你使用的資料庫支援自動增加(auto increasement) 欄位,你可使用那些欄位而不必自行編程。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-21 11:20:19 IP:211.74.xxx.xxx 未訂閱
新增按鈕按下後..另外用一個Query來做..
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT MAX(ABC) FROM XYZ');//ABC欄位名稱,XYZ Table Name
Query1.Open;
Query1.FieldByName('ABC').Value:=Query1.FieldByName('ABC').Value;//給值
Query1.Close;
TRY TRY SEE end;
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-21 12:30:08 IP:211.21.xxx.xxx 未訂閱
小弟在此補充一下:(以Master-Detail說明) 如果您是要取得Master的最大數加1:就要使用前面兩位前輩的方法。 若是您是要取得Detail的最大數加1:您可以使用下列的方法:
  • 在private區宣告一變數 MaxNo: Integer
  • 在Detail的DataSet的BeforeInsert事件寫: DataSet.Last; MaxNo := DataSet.FieldByName(欄位名稱).AsInteger;('
  • 在Detail的DataSet的onNewRecord事件寫: DataSet.FieldByName(欄位名稱).AsInteger := MaxNo 1;
~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/21 12:32:34
------
~小弟淺見,參考看看~
系統時間:2024-06-29 16:17:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!