下面以一個實例來說明:在 ‘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;
這樣,就保證了‘編號’字段的唯一性,當重復輸入時,計算機就會提示出錯信息,並且該數據不能保存,只能進行修改或放棄保存操作。