自定义函数一:search 作用是在添加数据时搜索以前是否存在相同的字段值。
自定义函数二:checkdata 作用是在添加数据时检测所有数据是否符合规则,checkdata中有时候需调用search.
增加时用的控件均为dbedit控件
错误提示1:参数a没有默认值(a是dbedit1的值)
错误提示2:标准表达示数据类型不匹配
注:出现两种错误时,调示器箭头都指向if form3.search(dbedit1.DataField,DBEdit1.Text) then这一句代码。用的是access数据为。代码如下:
function tform3.checkdata:boolean;
begin
result:=true;
if form3.dbedit1.text='' then
begin
result:=false;
showmessage('编号不能为空!');
form3.DBEdit1.SetFocus;
exit;
end;
if form3.search(dbedit1.DataField,DBEdit1.Text) then
begin
result:=false;
showmessage('编号重复,请重新录入');
form3.DBEdit1.SetFocus;
exit;
end;
if form3.DBEdit3.Text='' then
begin
result:=false;
showmessage('名称重复,请重新录入');
form3.DBEdit3.SetFocus;
exit;
end;
end;
function tform3.search(fieldname:string;value:string):boolean;
begin
form3.adoquery1.Close;
form3.ADOQuery1.SQL.Clear;
form3.adoquery1.SQL.Add('select * from toru_zl where '+trim(fieldname)+'='+trim(value));
form3.adoquery1.Open;
if adoquery1.RecordCount>0 then result:=true
else result:=false;
end;
自定义函数二:checkdata 作用是在添加数据时检测所有数据是否符合规则,checkdata中有时候需调用search.
增加时用的控件均为dbedit控件
错误提示1:参数a没有默认值(a是dbedit1的值)
错误提示2:标准表达示数据类型不匹配
注:出现两种错误时,调示器箭头都指向if form3.search(dbedit1.DataField,DBEdit1.Text) then这一句代码。用的是access数据为。代码如下:
function tform3.checkdata:boolean;
begin
result:=true;
if form3.dbedit1.text='' then
begin
result:=false;
showmessage('编号不能为空!');
form3.DBEdit1.SetFocus;
exit;
end;
if form3.search(dbedit1.DataField,DBEdit1.Text) then
begin
result:=false;
showmessage('编号重复,请重新录入');
form3.DBEdit1.SetFocus;
exit;
end;
if form3.DBEdit3.Text='' then
begin
result:=false;
showmessage('名称重复,请重新录入');
form3.DBEdit3.SetFocus;
exit;
end;
end;
function tform3.search(fieldname:string;value:string):boolean;
begin
form3.adoquery1.Close;
form3.ADOQuery1.SQL.Clear;
form3.adoquery1.SQL.Add('select * from toru_zl where '+trim(fieldname)+'='+trim(value));
form3.adoquery1.Open;
if adoquery1.RecordCount>0 then result:=true
else result:=false;
end;
解决方案 »
- treeview控件如何选中一个节点后右键弹出菜单?然后选中菜单里的某项,写相应的代码。比如删除,添加
- 如何判断 一个stringgrid中,哪些行 被用户修改了。
- 问题很复杂,请直接看内容,有关显示查询结果的问题!请各位大哥大姐多多帮忙!!
- 如何excel表中插入一列?
- 求教关于gzip压缩数据的问题
- Timage控件中图像大于显示区域,怎么让滚动条显示出来,Timage控件有没有滚动条?
- 有关sendmessage函数
- SMTP发电子邮件的问题(email;smtp;群发)
- 请问多维动态数组的详细资料在哪能找到?
- 类似于windows的注销
- 关于组件编写的概念性问题:
- 怎么样把一个32*32的ico图片,通过什么工具,把他转成16*16的?
1、if form3.dbedit1.text='' 改为 Trim(form3.dbedit1.text)=''
2、你没有把她修改前的值保存下来,修改后再判断,该字段是否修改过,修改过有没修改成和别的重复,不然你没有修改过改字段的话,数据库中肯定是有该机录的
第二个错误,标准表达示中数据类型不匹配是怎么回事?
function tform3.search(fieldname:string;value:string
检查dbedit1.DataField 子段是否为 STRING ?
if form3.search(dbedit1.DataField,DBEdit1.Text) then
是判断adotable的dbedit1.datafield中是否存在dbedit1.text,如果存在,表示值已经重复,search返假.
function tform3.search(fieldname:string;value:string
是判断adotable的fieldname字段中是否存在value值,如果有返回真,否则返回假.
你的FieldName字段类型是文本型吗?
判断是否重复,可以在beforePost事件判断
1.先查找数据
2.if (RecordCount>=1) and (DataSet.State=DsInsert) then
//重复
fieldname代表字段名,只有在第一个编号字段用了search,此字段类型为文本型,数据类型应该不会错吧,出错是在"if form3.search(dbedit1.DataField,DBEdit1.Text) then"这一句代码