?? 如何控制關鍵字段的重復輸入及報錯.txt
字號:
如何控制關鍵字段的重復輸入及報錯 (2001年4月6日)
網友更新 分類:數據庫 作者: winfit(推薦) 推薦:winfit 閱讀次數:305
(http://www.codesky.net)
--------------------------------------------------------------------------------
下面以一個實例來說明:在 ‘c:\’ 下有一個數據庫‘Renshi.dbf’,字段為:‘bianhao’;‘xingming’,類型為字符型,以關鍵字段‘bianhao’為索引字段,建立數據庫的連接。
我們用控件DBNavigator1、DataSource1、Table1、DBedit1、
DBedit2、Table2來建立數據庫的連接。其各屬性為:
Table1.databasename:='c:\';
Table1.tablename:='renshi.dbf';
Table1.active:=true;
DataSource1.dataset:=table1;
DBNavigator1.datasource:=DataSource1;
編號:對應字段bianhaio; 姓名:對應xingming字段;
dbedit1.datasource:=DataSource1;
dbedit1.datafield:='bianhao';
dbedit2.datasource:=DataSource1;
dbedit2.datafield:='xingming';
這樣數據庫的連接就建立好了。
這里我們要求‘編號’為關鍵字段,不允許重復輸入,為了控制輸入的編號為唯一,我們在數據庫變化時對Table1加入一個Beforepost事件,程序如下:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
with table2 do
begin
databasename:='c:\';
tablename:='renshi.dbf';
indexfieldnames:='bianhao';
if not active then open; {判斷數據庫是否打開}
Refresh; {刷新數據庫}
setkey; {設置數據庫為搜索狀態}
fieldbyname('bianhao').asstring:=dbedit1.text; {設置輸入的編號 字段內容為搜索的標準}
gotokey; {移動到搜尋的記錄上,完成搜索}
if gotokey then {如果找到搜索的記錄,則gotokey返回true}
begin
showmessage('輸入的編號已存在!請重新輸入');
abort; {終止該操作}
end;
end;
end;
這樣,就保證了‘編號’字段的唯一性,當重復輸入時,計算機就會提示出錯信息,并且該數據不能保存,只能進行修改或放棄保存操作。
該程序在Delphi4.0下調試通過
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -