自增自段和读出自增字段值?(200分)

  • 主题发起人 主题发起人 zly1965
  • 开始时间 开始时间
Z

zly1965

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一张表有一个自增字段ID,在多人同时录入数据时自动产生ID号,问题是在INSERT
数据后要立即把这个ID号反馈给操作员记录,如:
table (ID,字段1,字段2,字段3, ....) ID是自增字段,
insert into table vlaue (字段1值,字段2值,字段3值,....);
我的方法是:select ID from table where 字段1=字段1值 and 字段2=字段2值 and
字段3=字段3值.....)
但如果在实际使用中有可能where条件有重复值,不能得到正确值,各位高手有何好的解决
方法,最好详细点,先谢了!
另:数据库是informix;
 
在表中增加一个字段保存增加记录时的日期+时间,随你用什么格式,只要保证唯一。
然后用SELECT ID FROM table WHERE ...
 
如果用你的方法
取字段的时候可以用select max(id) from table取出刚刚insert进去的值
但是还是不太保险
最好的方法是将id改为uniqueidentifier类型(数据库是sqlserver吧?)
然后用GUID代替字增字段
你可以用很多方法生成一个GUID,保存到变量中,然后一边插入到表中,一边返回
给操作员。
GUID是不会重复的,所以在两个数据库导数据的时候非常方便
 
你可以加一个dbgrid 显示出来,就看见了
 
同意慕容乾坤的select max(id) from table方法,但我想在INSERT 中加入一个校验位
进去,这样一来更保险,不知校验位算法如何写比较好。
你的第二种方法因我用的是INFORMIX,没用过。
 
同意楼上的说法!
 
select max(id) from table 不妥,可能有别的客户在你之后新增纪录嘛
 
关注..我也想
 
就是呀,如果有别的用户增加了记录就不好用了。不如自己定义一个唯一的字段。
 
如果是多层的,provider有一个autoRefresh功能
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部