SQL 2000 个人版 +Delphi 7,主要用ADOQuery操作数据库!
现在遇到的问题:比如说做一个入库单的时候,这个单子上客户有200多条记录需要录入.那么现在的情况是客户录入数据按保存,在向数据库提交的时候后会丢失部分记录...客户录入的数据是先保存在一临时表内,然后提交的时候用Insert插入到正式表...请问为什么会出现这样的情况?用ADOQuery.ExecSql执行SQL语句,难道是ADOQuery的问题??用什么方法或者在D7中ADOQuery外的其他ADO控件可以避免这样的问题?比如事务?过程?菜鸟不懂,请教各位大大了!

解决方案 »

  1.   

    adoquery肯定不会出问题的,你可以用查询分析器调试下,
    先看看写入临时表中数据丢失没,然后再看看写入正式表中是否丢失,
    问题就基本上出来了,呵呵。
      

  2.   

    ADOQuery5.SQL.Text:=
    'insert into kc_mx smon,syear,pzlx,pzh,ckpzh,pzrq,ddh,kh,chdm,dm,mc,gg) select smon,syear,pzlx,pzh,ckpzh,pzrq,ddh,kh,chdm,dm,mc,gg from kc_mx_ls where cysl<>0';    
    ADOQuery5.ExecSQL;因为在录入多条数据的时候可能用的时间也比较长,有没有可能因为时间长出现连接超时而丢失部分数据?但客户端又没有提示!
      

  3.   

    确定在临时表内肯定存在用户所录入的每条记录!
    就是将临时表内的文件根据一定的条件向正式表内用Insert插入的时候会丢失数据!
      

  4.   

    1.楼主你这句话可以执行吗?我看着有点问题呢?insert的字段数目与select 的数目不一致阿!
    2.从临时表中向正式表中插入数据时,你可以采用存储过程看看是否还有问题!