if table1.Locate('学号',vararrayof([dbedit1.text]),[lopartialkey])then
begin
showmessage('此学生已存在!');
exit;
end;
当录入学生信息时,如果录入相同学号,则显示提示信息,却不能实现
(表里学号为主键)
begin
showmessage('此学生已存在!');
exit;
end;
当录入学生信息时,如果录入相同学号,则显示提示信息,却不能实现
(表里学号为主键)
解决方案 »
- if (UpperCase(Chr(key)) = 'TAB') and (Shift=[ssCtrl]) then 没反应
- 请大家来讨论ERP系统中是如何解决一料多供应商的问题
- 请教开发MIDAS中遇上的两个问题?
- 请扩展名是OCX的delphi控件如何使用啊?我这个控件是qq下拉菜单的控件
- delphi+sql的参数传递
- 下面的东东能不能用SQL实现
- 一个简单但不好解决的问题
- 一个关于模拟滚屏的问题
- delphi里面怎样使用sdk??
- 各位DELPHI高手,我怎么把数据库中的gif图片保存为gif文件?谢谢帮忙,很急!
- 怎么把chm文件和delphi文件结合起来
- treeview 这样的速度快吗?
begin
showmessage('此学生已存在!');
exit;
end;
單字段欄位LOCATE時,好像不用vararrayof().
我是这样做的,供你参考!
使用一个共用的TAdoQuery 命名为:PubQty
在你的Table 中的BeforePost 中写入以下代码:
if DataSet.State in [dsInsert] then //因为如果用户是修改数据则不用去判断了,只有新增数据才去判断是否有相同的学号
begin
//用PubQty去查询是否已存在有相同的学号
PubQty.Close ;
PubQty.Sql.Text := 'select 学号 from 学生表 where 学号=:mycode ' ;
PubQty.Parameters[i].Value := Trim(Edit1.text) ;
PubQty.open ;
if not PubQty.Isemtpy then
begin//如果找到相同的学号,则不可新增,
showmessage('此学号已存在!请重新输入') ;
Abort ;
Exit ;
end ;
end ;
你试一试这样可以么?
或者用Query查找
begin
showmessage('此学生已存在!');
exit;
end;不过dbedit可能不行 因为在你的鼠标离开dbedit后 数据就会被存入数据库中去建议最好将学号设为主键 可以不这样写 只要捕获错误即可!!
似乎这里的问题非常多。你的这个问题我也碰到过。
也搞不懂是怎么解决的。
begin
showmessage('此学生已存在!');
exit;
end
else begin
你的添加记录语句~~~
end;