数据库中为131,为何显示为55,高手进(100分)

  • 主题发起人 hmily1688
  • 开始时间
H

hmily1688

Unregistered / Unconfirmed
GUEST, unregistred user!
我库中有一crema_id,为自增型的,在保存按钮中的代码如下
if AdoDataSet1.State = DsInsert then
begin
AdoDataSet1.Post;
ShowMessage(ADODataSet1.fieldbyname('cremation_in_id').AsString);
end
else
begin
AdoDataSet1.Post;
ShowMessage(ADODataSet1.fieldbyname('cremation_in_id').AsString);
end;
新增时库中是131,为何显示出来的是55,如果为修改则显示正确。为什么 ?
 
呵呵,可能是post后,游标指向第一条记录。
而且,我不明白,你这上下两个判断有什么区别?
 
if AdoDataSet1.State = DsInsert then
begin
AdoDataSet1.Post;//和下面的没有区别都是post,为什么?这样就不要用if语句
end
else
begin
AdoDataSet1.Post;
end;
AdoDataSet1.last;
ShowMessage(ADODataSet1.fieldbyname('cremation_in_id').AsString);
看最后一条记录的id是不是正确
 
各位老大,我的showmessage语句只是为了我不用debug跟踪而已,哈哈。为了证实在
insert时是31,而在edit时是正确的,这个表中有一个after insert的触发器,里面调
用了一个存储过程 .而数据库中绝对是131,当然这里的31,55是针对一条记录的,如果再
增加时就会递增的
 
我使得挺正常的delphi6 + access没有你说的问题
 
我的是sql server2000,表里面有触发器,触发器调用了一个存储过程 。[:(!]
 
看看post后记录位置,!
再看看55是哪一条记录的值
 
55哪条件记录在数据库中是不存在的,5555~~~~~~~~~~~~~~
 
坏了吧,坏了吧
我说触发器容易出问题,存储过程容易胡算。
这不,坏掉了
 
我倒,我也不喜欢触发哭,这不都成触哭了,不过这是公司留下来的程序,如果干掉它很费
时间的
 
多人接受答案了。
 
顶部