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

關於流水編號

答題得分者是:pceyes
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-25 14:06:22 IP:140.125.xxx.xxx 訂閱
請問一下 我要讓資料庫 在新增一筆資料的時候
可以自動產生筆數的流水編號
可是不知道怎麼寫= ="


procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldByName('日期').Asdatetime:=DateTimePicker1.Date;
Table1.FieldByName('物品名稱').AsString:=edit4.Text;
Table1.FieldByName('進貨數量').AsString:=edit6.Text;
DateTimePicker1.SetFocus;//將輸入焦點移至編號欄位上
Table1.post;


我的fieldbyname是('序號')
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-25 14:24:30 IP:218.210.xxx.xxx 訂閱
一定要自己寫嗎?? 用資料庫裡面自己有的欄位型態來產生流水號,還是你要有自己編碼方式的流水號?

sql 2005 的話,選擇 integer 的欄位,在識別規格的地方選擇是,這樣每次新增時,就會自己增加
access 的話,選擇 自動編號 的欄位型態即可

至於其他的,才疏學淺,小弟就不曉得了
------
價值的展現,來自於你用哪一個角度來看待它!!
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-26 08:33:58 IP:203.73.xxx.xxx 未訂閱
--ORACLE自動序號範例

CREATE TABLE campus_site (
site_id NUMBER(4),
organization_name VARCHAR2(40),
campus_name VARCHAR2(30),
address_id NUMBER(10));

CREATE SEQUENCE seq_campus_site_id;

INSERT INTO campus_site(site_id, organization_name, campus_name)
VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Main Seattle');

SELECT * FROM campus_site;

INSERT INTO campus_site(site_id, organization_name, campus_name)
VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Bothell');

SELECT * FROM campus_site;

REF: http://www.psoug.org/reference/sequences.html

===================引 用 g9614721 文 章===================
請問一下 我要讓資料庫 在新增一筆資料的時候
可以自動產生筆數的流水編號
可是不知道怎麼寫= ="


procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldByName('日期').Asdatetime:=DateTimePicker1.Date;
Table1.FieldByName('物品名稱').AsString:=edit4.Text;
Table1.FieldByName('進貨數量').AsString:=edit6.Text;
DateTimePicker1.SetFocus;//將輸入焦點移至編號欄位上
Table1.post;


我的fieldbyname是('序號')
------
What do we live for if not to make life less difficult for each other?
編輯記錄
christie 重新編輯於 2008-08-26 08:35:24, 註解 無‧
christie 重新編輯於 2008-08-26 08:44:38, 註解 無‧
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-27 02:37:19 IP:220.131.xxx.xxx 訂閱

小弟的資料庫是PARADOX

請問可以這樣設定嗎?
===================引 用 careychen 文 章===================
一定要自己寫嗎?? 用資料庫裡面自己有的欄位型態來產生流水號,還是你要有自己編碼方式的流水號?

sql 2005 的話,選擇 integer 的欄位,在識別規格的地方選擇是,這樣每次新增時,就會自己增加
access 的話,選擇 自動編號 的欄位型態即可

至於其他的,才疏學淺,小弟就不曉得了

編輯記錄
g9614721 重新編輯於 2008-08-27 02:37:43, 註解 無‧
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-08-27 02:39:30 IP:220.131.xxx.xxx 訂閱
如果用table 該如何寫呢?
===================引 用 christie 文 章===================
--ORACLE自動序號範例

CREATE TABLE campus_site (
site_id NUMBER(4),
organization_name VARCHAR2(40),
campus_name VARCHAR2(30),
address_id NUMBER(10));

CREATE SEQUENCE seq_campus_site_id;

INSERT INTO campus_site(site_id, organization_name, campus_name)
VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Main Seattle');

SELECT * FROM campus_site;

INSERT INTO campus_site(site_id, organization_name, campus_name)
VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Bothell');

SELECT * FROM campus_site;

REF: http://www.psoug.org/reference/sequences.html

===================引 用 g9614721 文 章===================
請問一下 我要讓資料庫 在新增一筆資料的時候
可以自動產生筆數的流水編號
可是不知道怎麼寫= ="


procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldByName('日期').Asdatetime:=DateTimePicker1.Date;
Table1.FieldByName('物品名稱').AsString:=edit4.Text;
Table1.FieldByName('進貨數量').AsString:=edit6.Text;
DateTimePicker1.SetFocus;//將輸入焦點移至編號欄位上
Table1.post;


我的fieldbyname是('序號')
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-08-27 14:11:11 IP:122.118.xxx.xxx 訂閱
難以歸類主題的討論區(Delphi) » 流水編號
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=18633
------
努力會更接近成功
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-08-27 14:52:31 IP:140.125.xxx.xxx 訂閱
利用 Paradox .db 的資料庫格式,可以定一個 Autoincrement/AUTOINC 的欄位,每加入一筆資料到資料庫中,該欄位會自動累加1
我新增了一個欄位 選AUTOINC 但是不能跑= =耶 TABLE 設為TURE時會說找不到該欄位 是不是還要修改其他設定?


如果這樣做呢?
可以跑但是會發生錯誤!
找不到"序號"

procedure TForm1.Button1Click(Sender: TObject);
Var
Str: String;
I: Integer;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select Max(序號) From 購入量');
Query1.Open;
I := StrToInt(Query1.Fields[0].AsString);
I:= I 1;
Str := Format('%3.3d', [I]);
Table1.Insert;
Table1.FieldByName('序號').AsString := STR;
Table1.FieldByName('日期').Asdatetime:=DateTimePicker1.Date;
Table1.FieldByName('物品名稱').AsString:=edit4.Text;
Table1.FieldByName('進貨數量').AsString:=edit6.Text;
DateTimePicker1.SetFocus;//將輸入焦點移至編號欄位上
table1.post;
end;
===================引 用 pceyes 文 章===================
難以歸類主題的討論區(Delphi) ? 流水編號
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=18633
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-08-27 17:17:16 IP:220.141.xxx.xxx 訂閱

===================引 用 g9614721 文 章===================
利用 Paradox .db 的資料庫格式,可以定一個 Autoincrement/AUTOINC 的欄位,每加入一筆資料到資料庫中,該欄位會自動累加1
我新增了一個欄位 選AUTOINC 但是不能跑= =耶 TABLE 設為TURE時會說找不到該欄位 是不是還要修改其他設定?

我用Database DeskTop 試它是會自動加1的

如果這樣做呢?
可以跑但是會發生錯誤!
找不到"序號"

procedure TForm1.Button1Click(Sender: TObject);
Var
Str: String;
I: Integer;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select Max(序號) From 購入量');
Query1.Open; I := StrToInt(Query1.Fields[0].AsString);
I:= I 1;
Str := Format('%3.3d', [I]);
Table1.Insert;
Table1.FieldByName('序號').AsString := STR;{如果序號type是AUTOINC它一定報錯,它是自動的你也無法設定它}
Table1.FieldByName('日期').Asdatetime:=DateTimePicker1.Date;
Table1.FieldByName('物品名稱').AsString:=edit4.Text;
Table1.FieldByName('進貨數量').AsString:=edit6.Text;
DateTimePicker1.SetFocus;//將輸入焦點移至編號欄位上
table1.post;
end;
===================引 用 pceyes 文 章===================
難以歸類主題的討論區(Delphi) ? 流水編號
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=18633
------
努力會更接近成功
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-08-27 17:54:16 IP:220.141.xxx.xxx 訂閱
如果你的序號要用字串表示的話,懶方法如下:保證不會出錯,你也不用事先搜尋有沒有重號
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text := formatdatetime('yyyymmddhhmmsszzz',now);
end;

[/code]
------
努力會更接近成功
系統時間:2024-05-03 3:51:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!