关于数据库的简单问题(200分)

  • 主题发起人 主题发起人 AYellow
  • 开始时间 开始时间
A

AYellow

Unregistered / Unconfirmed
GUEST, unregistred user!
一张表中没有一个字段可以唯一的表明一条记录,我加入一个ID(整数)作为主
关键字,ID值由程序自动生成。请问
1)ID如何计算?
2)在Post前要进行检查输入的某个字段(该字段值并不唯一)是否和以前的有
重复,如果有,询问用户是否要提交,用户同意就Post,否则取消。
3)以上两点在TQuery和TTable中如何实现?在什么时候(或是事件中)实现?
要求简单高效。我用的是ADO连接。
我的一些解决办法总是或者要引入其它DataSet组件,或者是莫名其妙的出现异
常,或者是很麻烦(效率也很低),比如在BeforePost中总是异常。
 
在BeforePost中用一SQL語句實現
 
用自动增加字段
 
能具体一点吗?
 
用自动增加字段,也就是自动编号类型。在Access中有的
 
既然是用ado, 又是文件型数据库, 估计你用的是access
那你可以在access将ID设置成自动编号字段就行了

>>一张表中没有一个字段可以唯一的表明一条记录
你还可以考虑用多个字段组合成一个主键来唯一表示一条记录
 
如果用sql server,有一个自动递增类型可以用,
用oracle的话,可以自己写一个触发器,不过需要建一个中间表,里面存放各个的最大记录,
然后改变这个表的值就可以
 
自动增加字段怎么用?
只能在Access中用吗?
第二个问题怎么解决,在BeforePost中总是异常,好像和数据集的状态有关。
 
关于问题二,我一直只有笨办法:
从记录BOF到记录EOF,遍历该字段值和新输入值,判断是否重复,重复提示,否则POST。
 
Access肯定可用自动增加字段。有了自动增加字段就不用担心重复了
如果不用自动增加字段,第二个问题有两种方法:
1。在save之前,Locate
2。不管它,提交失败,数据库返回错误,捕捉这个错误。
 
多人接受答案了。
 
后退
顶部