J jinhy Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-24 #1 现在假设有一个数据库表yqgs_code,有一个yqgs字段,在插入一个记录之前,要先判断该记录是否在yqgs_code中,请问怎样编程,请写出程序代码!
X xWolf Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-24 #2 procedure TForm1.Table1BeforeInsert(DataSet: TDataSet); begin Query1.SQL.Clear; Query1.SQL.Add('SELECT yqgs FROM yqgs_code WHERE yqgs = ' + 'xx'); Query1.Open; if Query1.RecordCount > 0 then Abort; end;
procedure TForm1.Table1BeforeInsert(DataSet: TDataSet); begin Query1.SQL.Clear; Query1.SQL.Add('SELECT yqgs FROM yqgs_code WHERE yqgs = ' + 'xx'); Query1.Open; if Query1.RecordCount > 0 then Abort; end;
千 千中元 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-24 #3 beforeinsert events if talbe1.locate(该记录)=true then abort;
R RainbowHu Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-24 #4 我觉得最保险的方法是:如果必须要求记录唯一的话,可以定义此字段的唯一性
D dragonhu Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-24 #5 A.设计数据库表时定义唯一性,捕捉异常避免出现内部错误信息, 可自行显示失败提示。 B.新增时可使用xWolf的方案,query1为临时, SQL可用Select count(*) from 表名 where 条件, 判断Query1.Fields[0].asinteger >0,个人认为比RecordCount快. C.更新时判断唯一性字段的值是否有变化(OLDVALUE,NEWVALUE), 如有变化执行类似新增时判断。
A.设计数据库表时定义唯一性,捕捉异常避免出现内部错误信息, 可自行显示失败提示。 B.新增时可使用xWolf的方案,query1为临时, SQL可用Select count(*) from 表名 where 条件, 判断Query1.Fields[0].asinteger >0,个人认为比RecordCount快. C.更新时判断唯一性字段的值是否有变化(OLDVALUE,NEWVALUE), 如有变化执行类似新增时判断。
P PPMouse Unregistered / Unconfirmed GUEST, unregistred user! 2000-05-21 #6 定义该字段为关键字,QUERY插入时若重复,系统会提示错误。 否则用老千的方法。
B buptwqs Unregistered / Unconfirmed GUEST, unregistred user! 2000-05-21 #8 使用locate if talbe1.locate('字段名',字段值,[参数])=true then abort; 参数参见delphi帮助。