程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中如何控制關鍵字段的重復輸入及報錯

Delphi中如何控制關鍵字段的重復輸入及報錯

編輯:Delphi

下面以一個實例來說明:在 ‘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.Table1
BeforePost(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下調試通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved