查询数据库表中的记录!!(10分)

C

cjsh

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.InsertClick(Sender: TObject);
begin
table1.First;
table1.SetKey;
table1.Fields[0].asstring:=trim(edit1.text);
if not table1.Gotokey then
begin
try
table1.Insert;
table1.FieldByName('Name').asstring:=trim(edit1.text);
table1.FieldByName('sex').asstring:=EDIT2.Text;
table1.FieldByName('Birth').asdatetime:=strtodatetime(edit3.text);
table1.Post;
except
table1.Delete;
exit;
end;
end else
begin
showmessage('该记录已经存在!');
end;
end;
执行这段代码后,我想Name字段不能有相同的值
结果就是达不到我想要,我用的是Table1控件
请各位大富的朋友帮忙调试一下
多谢了!
 
可能是"if not table1.Gotokey then"这一句错了吧
 
edit1.Text:=table1.Fields[0].AsString;
除了这样赋值有没有其它的方法,请高手指点!
 
不用那个不就好了,用SQL语句看看,那样可靠性会更好。
 
if not table1.locate('name',edit1.text,[]) then
begin
.......
end
else
showmessage(' 该记录已经存在');
 
up一下也行,赶快来呀,我要收贴了
 
你找个书看看!
我好久没有用delphi了!
应该比较简单!
可能你的table1.Fields[0].asstring:=trim(edit1.text);这句话有问题!
table1.Delete;你看看是不是delete了下一条记录?

 
findkey速度更快
 
是否大小写不对?用CompareText
 
数据库中,该列设为unique
程序中,try ...excecpt 保护起来。如果该列重复了,就汇报错。
 
用query 吧,我个更好用,我开始用TABel也是没有搞定,后来就用了query才搞定的,当然要麻烦一些。
我是新手!
 
edit1.text:=table1.fieledbyname('asd').asstring;
 
多人接受答案了。
 

Similar threads

顶部