为这个问题前前后后花了我260分,帮帮忙吧!!!!!!!!!!
skyhh 2004-04-09 03:22:25 怎样得到最新插入行的字段!
(不能是别人插入的,只能是自己插入的)
我现在是建了一个表做为我系统里的主表!
在系统里每执行一个操作就先会写在这个主表里!然后跟据写在这个表里的唯一标识,再写到其它附表里!(根据这个表里的唯一标识来关联)
可问题是,有个并发性,如果同时有很多人用的话,就怕取错了!
目地:得到插入在主表里的唯一标识!
打个比方吧!我开始在主表里插入了一行,唯一ID是100,正要取得刚插入的这行的唯一标识时!可另一个人,也向表里写了一行,唯一ID是101,所以到后来我取得的是101!
我用的是SQL2000
/////////////////////////////////////////////////////////////
数据库加个字段,把sessionid读进去,那肯定不会错了
SESSIONID当然不太可能有重复的了
===============================
但还是可能会有重复的呀!
//////////////////////////////////////////////////////////////
不建议用自增的字段,可以先生成id,再把id插进去。
===============================
你的这种方法是人工来干预的,不是很好,还有时间,也有可能会有重复的!
//////////////////////////////////////////////////////////////
插入一条带自动编号字段的记录后,获取该记录的bookmark属性值
===============================
1,3不支持bookmark属性,我也试了很多支持的会有
提供者不能确定该值。原因可能是:记录刚刚创建,该字段的默认值不可用,或用户未设置新值
//////////////////////////////////////////////////////////////
如果用 RecordSet.AddNew 插入记录,
RecordSet.Update 之后,它的指针就处于刚插入的记录上
===============================
指针是在最新的一条,可是读不出的是空值呀!
//////////////////////////////////////////////////////////////
如果你的id在主表中是自动增长id的话。插入记录后,可以用select @@identity来获得刚插入的记录的id号
===============================
先执行insert,再执行select @@identity,是能得到最大!但这是两条语句呀!可还是有可能在自己执行insert后,别人也执行了一条insert,这也不能保证是自己的ID呀!
//////////////////////////////////////////////////////////////
以上是坛子里一些高手+好人告诉我的!
你知道不知道呢!!??
想来想去,只有一种办法,在我操作的时候,锁表!!!!!!!!!!!!
(可我不知道,郁闷..........................................