?? 如何控制關鍵字段的重復輸入及報錯.htm
字號:
<html>
<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>計算機世界日報:
如何控制關鍵字段的重復輸入及報錯
</title>
<!--***********-->
</head>
<body bgcolor="#FFFFFF" >
<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
如何控制關鍵字段的重復輸入及報錯
</h2></font>
<h3>
山東巨力股份有限公司
<br>王來國
</h3>
</center>
<p><font color="#ffffff">----</font>
下面以一個實例來說明:在 ‘c:\’ 下有一個數據庫‘Renshi.dbf’,字段為:‘bianhao’;‘xingming’,類型為字符型,以關鍵字段‘bianhao’為索引字段,建立數據庫的連接。
<p><font color="#ffffff">----</font>
我們用控件DBNavigator1、DataSource1、Table1、DBedit1、
<p><font color="#ffffff">----</font>
DBedit2、Table2來建立數據庫的連接。其各屬性為:
<pre>
Table1.databasename:='c:\';
Table1.tablename:='renshi.dbf';
Table1.active:=true;
DataSource1.dataset:=table1;
DBNavigator1.datasource:=DataSource1;
</pre>
<p><font color="#ffffff">----</font>
編號:對應字段bianhaio; 姓名:對應xingming字段;
<pre>
dbedit1.datasource:=DataSource1;
dbedit1.datafield:='bianhao';
dbedit2.datasource:=DataSource1;
dbedit2.datafield:='xingming';
</pre>
<p><font color="#ffffff">----</font>
這樣數據庫的連接就建立好了。
<p><font color="#ffffff">----</font>
這里我們要求‘編號’為關鍵字段,不允許重復輸入,為了控制輸入的編號為唯一,我們在數據庫變化時對Table1加入一個Beforepost事件,程序如下:
<pre>
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;
</pre>
<p><font color="#ffffff">----</font>
這樣,就保證了‘編號’字段的唯一性,當重復輸入時,計算機就會提示出錯信息,并且該數據不能保存,只能進行修改或放棄保存操作。
<p><font color="#ffffff">----</font>
該程序在Delphi4.0下調試通過。
<p align="right"><small><em>中國計算機世界出版服務公司版權所有</em></small>
<br>
</p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -