ADOQuery+DBGrid的问题:
按增加按扭在DBGrid中增加一条记录,按保存按扭后,若某一字段值的内容与原始记录重复,则提示错误,那要如何检测到这条新增记录某一字段的值呢?
按增加按扭在DBGrid中增加一条记录,按保存按扭后,若某一字段值的内容与原始记录重复,则提示错误,那要如何检测到这条新增记录某一字段的值呢?
解决方案 »
- 如何使用PostMessage从线程中向主线程发送一些数据
- 请问采用sockconnection连接时,为何出现cnot't create new socket 连不上主机?请问采用sockconnection连接时,为何出现cnot't create new
- 奇怪:怎么@yeah.net的邮箱不能收到e_mail呢?
- 编辑框不允许输入数字或只允许输入数字如何限制?
- delphi连接Sybase数据问题**(在线等待)************************
- 怎样右对齐几个label?
- 问一个问题,进来有分,(我分太多了,分给大家吧)
- 十万火急-如何写个程序修改各个Windows平台的IP地址
- 请帮忙,很容易!!
- 新版cxGrid滚动条太小了
- 小妹跪求这么一个简单的问题.急急
- 这样的病你们见过未?
那你这样判断不行吗?
select count(*) from TableName where FieldName = 数值
我一直就是这么做的。
哇~哈~~~~~哈~哈~!
try
//这里最好先判断不能为空......
append;
post;
.
.
.
except
on e:exception do
begin
showmessage('记录重复!');
edit1.setfocus();
end;
end;
你这个也可以:
select count(*) as aa from TableName where FieldName = 数值;
再判断 aa 是否大于0,也是行的,但......
或者你用事务做做也可以
所以说前面不是加了不能为空等判断,一般为说,除去相应错误,剩下的就认为是重复了。当然,这不是绝对正确的!
问题是如何得到DBGrid中新增的数据
==============================
如果有错,就添加不到数据库里去了!如何得到新增的数据?
例:procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.DisplayLabel = 'a' then //'a' 为你的不能这空的字段名;
begin
if DBGrid1.SelectedField.AsString = '' then
showmessage('不能为空!');
end;
end;
比你还先发
测试过,没什么问题在DBGrid的OnColExit事件中:
例:procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if DBGrid1.SelectedField.DisplayLabel = 'a' then //'a' 为你的不能这空的字段名;
begin
if DBGrid1.SelectedField.AsString = '' then
showmessage('不能为空!');
end;
end;