请问如何避免同一数据库中相同纪录的产生 设置主键,或者将需要插入的数据作为条件Select一下,没有记录就执行插入! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置主键,或者将需要插入的数据作为条件Select一下,没有记录就执行插入! bigban 不知你能否再说详细一点呢?我用if ....then 算不算您说的触发器呢?(由于我是初学者很多东西都不知道)是否需要将要插入的纪录和a中的所有记录进行比较呢? 你是用那个数据库. 一般的client/Server数据库, 在应有的设定下,绝不会发生的. 若不介意的话, 最好先介绍多一些你的数据表的结构.让大家叁详.如是xBase的文件,你得要做少许编程呢,才可防止的. if ....then 不算触发器触发器是这样的:他是一段程序或者说是一个操作;它应该属于数据表的一部分;它规定了该数据表发生变化(insert、update、delete)之前或者之后要发生的操作。例如,你可以间隔表A的触发器,规定在对A进行insert之间,进行这样的操作:判断表A内是否存在您要insert 的记录,如果有就取消insert 操作,否则,继续。 SQL有一个IN的指令,INSERT前IN一遍就行了 我所知道的也就是以上这两个方法!不过、我觉得要是c/s结构,最好是用触发器来实现! 而对于那些桌面数据库就用table的locate方法查找! 可以这样写: if not table1.locate('字段名称1,字段名称2,...','相应的查找值列表',[搜索条件]) then do your somthing else wornning! 其实用我倾向与用query控件,效率高嘛!但桌面的程序我用table控件,简单啊! 在界面逻辑方面控制一下。新增:使用INSERT新增时确认,新增后:如果仍显示新增的记录:使INSERT按钮变灰。//少见。ELSE 回到初始状态,等待用户事件(新增、修改、删除……)。其它情况不会出现重复录入吧。 模式对话框,当用户点击其他地方时,怎么闪动提示窗体呢? 地磅程序测试 让一个控件透明,可以看到背面下的图? 如何向Dll窗体中传递参数 请问delphi高手,在tchart中如何根据数据库的一个布尔字段在图表中动态做一个标记 wks过来领分 错误信息 小调查,进来有分(关于软件下载) 谁会把DELPHI的工程打包成SETUP程序。 inherited 是什么意思能详细解释一下吗? 基本的OOP 问题,关于property 的read & write 成员... 我想讓label.caption:='中國人民'這四個字在form1中豎著顯示,而不是橫著顯示,請問應設label的哪一個屬性。
或者将需要插入的数据作为条件Select一下,没有记录就执行插入!
我用if ....then 算不算您说的触发器呢?(由于我是初学者很多东西都不知道)
是否需要将要插入的纪录和a中的所有记录进行比较呢?
绝不会发生的. 若不介意的话, 最好先介绍多一些你的数据表的结构.
让大家叁详.
如是xBase的文件,你得要做少许编程呢,才可防止的.
触发器是这样的:
他是一段程序或者说是一个操作;
它应该属于数据表的一部分;
它规定了该数据表发生变化(insert、update、delete)之前或者之后要发生的操作。
例如,你可以间隔表A的触发器,规定在对A进行insert之间,进行这样的操作:
判断表A内是否存在您要insert 的记录,如果有就取消insert 操作,否则,继续。
而对于那些桌面数据库就用table的locate方法查找!
可以这样写:
if not table1.locate('字段名称1,字段名称2,...','相应的查找值列表',[搜索条件]) then
do your somthing
else
wornning!
但桌面的程序我用table控件,简单啊!
新增时确认,新增后:
如果仍显示新增的记录:使INSERT按钮变灰。//少见。
ELSE 回到初始状态,等待用户事件(新增、修改、删除……)。其它情况不会出现重复录入吧。