用二個Table 作編號自動加一 若資料庫是空的可以給起始編號嗎? |
缺席
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
[code delphi] procedure Tform1.Table1NewRecord(DataSet:TDataset); begin table2.last; table1.fieldbyname('CustNo').AsInteger := table2.fieldbyname('custNo').AsInteger 1; end;[/code] 如果資料庫是空的 要自動給起始號可以嗎? 在本討論版小弟有查詢過是有相關的例題,是用 Query1 作的,請問各位前輩若直接用 二個Table可以解決這個問題嗎? |
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
[code delphi] procedure Tform1.Table1NewRecord(DataSet:TDataset); Var K2:String; K1:integer; begin if Table1.FieldByName('CustNo').AsString < '0' Then begin Table1.FieldByName('CustNo').AsString := '2014001'; K2:= copy(Table1.FieldByName('CustNo').AsString ,1,7);//轉入字串內容 K1:= StrToInt(K2);//將字串轉成數字 end; Table2.last; Table1.fieldbyname('CustNo').AsInteger := Table2.fieldbyname('custNo').AsInteger 1; //Key 值自動加一 end;[/code] ===================引 用 K1086 文 章=================== [code delphi] procedure Tform1.Table1NewRecord(DataSet:TDataset); begin table2.last; table1.fieldbyname('CustNo').AsInteger := table2.fieldbyname('custNo').AsInteger 1; end;[/code] 如果資料庫是空的 要自動給起始號可以嗎? 在本討論版小弟有查詢過是有相關的例題,是用 Query1 作的,請問各位前輩若直接用 二個Table可以解決這個問題嗎? |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
我都用
DataSet.FieldByName('ItemNo').AsInteger := DataSet.RecordCount 1; 新增一筆時 RecordCount = 1,因此第一個編號剛好是 1。 必須禁上從中間插入資料,即只能 Append 才會省事。 存檔時,DataSet 必須跑一偏重填一次序號,否則中間有刪除過,序號會不連續。 DataSet.First; while nto DataSet.EOF do begin DataSet.FieldByName('ItemNo').AsInteger := DataSet.RecNo; DataSet.Next; end; DataSet.First; |
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
寫一個函數, 不會花很多時間
// 取得下一個 key function KeyNext(TableName, FieldName : string):integer; var q : TFDQuery ; begin q := TFDQuery.Create(application); q.Connection := dm.fdCon; q.SQL.Text := 'select max( ' FieldName ') as max_key from ' (TableName) ; q.Open; if q.FieldByName('max_key').IsNull then result := 1 else result := q.FieldByName('max_key').AsInteger 1 ; q.Close; q.Free; end; 如果你沒有用後端資料庫, Index 偶爾會壞, 資料筆越多, 壞的機率越高 如果你有用後端資料庫, 不適合用 TTable |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |