用adoconnection和adotable连接到ms SQL数据库。adotable1.Append;
adotable1['xjbg_dwm']:=dwm;
adotable1['xjbg_zgzw']:=suimemo1.Text;
adotable1['xjbg_bddt']:=suimemo2.Text;
adotable1['xjbg_clqs']:=suimemo3.Text;
adotable1['xjbg_rq']:=date;
adotable1.Post;可是我接下来用adoquery查询记录:其中(xjbg_ix是索引,自动增加)
qry1.SQL.Clear;
qry1.SQL.Add('SELECT * FROM zb_t_xjbg WHERE (xjbg_ix = (SELECT MAX(xjbg_ix) FROM zb_t_xjbg))');
qry1.Open;
suiform1.Caption:=suiform1.Caption + qry1.Fields.Fields[2].Value;
mmo1.Text:=qry1.fields.Fields[4].value;
mmo2.Text:=qry1.fields.Fields[3].value;
mmo3.Text:=qry1.fields.Fields[5].value;
qry1.Close;显示的却是原来没有更新的最后一条记录。
应该是刚才插入的记录才对啊!
弟兄们帮忙看看。

解决方案 »

  1.   

    更新比较慢,估计你要等几秒后再查询结果就对了。
    使用SQL对表进行更新,
    update tablename
    set xjbg_dwm=dwm
    where xjbh_ix=id
    需要时对参数进行赋值,
      

  2.   

    update tablename
    set xjbg_dwm=dwm
    where xjbh_ix=id
      

  3.   

    查询前把ADOquery的数据集  close 后再open;
      

  4.   

    窗体?还有这种原因?
    是数据集的更新方式吧,LockType属性。
    若是批更新,没有UpdateBatch肯定是没有的。
      

  5.   

    查询前将adotable1关闭可能就会没有问题,不过可以直接对ADOquery进行插入,根本不需用到adotable插入。
      

  6.   

    这个窗体不是主窗体,而且他的visable属性设成了true,把这个属性改成false就不会出现上面的错误了。我也不知道为什么。:)
    帖子再留两天,哪位高手能解释一下,顺便给其他遇到同样情况的朋友提供一个参考。多谢楼上各位了!