如何加一 |
尚未結案
|
delphi
初階會員 發表:52 回覆:64 積分:38 註冊:2002-05-21 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
若你要自行編程,最普遍的做法是另立一 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 發送簡訊給我 |
新增按鈕按下後..另外用一個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 發送簡訊給我 |
小弟在此補充一下:(以Master-Detail說明)
如果您是要取得Master的最大數加1:就要使用前面兩位前輩的方法。
若是您是要取得Detail的最大數加1:您可以使用下列的方法:
------
~小弟淺見,參考看看~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |