我用ADO连的数据库,现在的问题是我在一个 with adoquery1 do 里如果只有INSERT和DELETE操作的话,程序可以运行,但是需要在INSERT前有一个SELECT语句的话,就会报错,在INSERT后旧没关系,前段时间也是,一个FORM上有两个按钮 一个是 插入数据,一个是读取数据,用的是同一个ADOQUERY,为什么我在操作完读取数据后(Form上有几个EDIT来显示读的内容),在进行插入操作(在EDIT上写上新的内容),时就抱错 错误信息是access Violation at address 1F487CAB in module 'msado15.dll'.write of address 013A8020
我用的SYBASE数据库,高手帮帮忙  

解决方案 »

  1.   

    你用其他比如access建一个类似的库试一下你的程序,看看是不是ADO本身的问题
      

  2.   

    就是,插入与查询使用不同的Query试试
      

  3.   

    在SELECT之前要置为查询状态:  SETKEY;在INSERT和DELETE之前要置为编辑状态:  EDIT;
      

  4.   

    老兄!我也遇到过跟你一样的问题,最后,还是分别用不同的ADOQuery来避免错误!不知如何才能用一个ADOQuery来执行数据查询和更新操作!
      

  5.   

    我也遇到过,把MDAC升级到2.7就行了。但是有可能出现其他问题。
      

  6.   

    楼主是不是动态创建的adoquery
      

  7.   

    ADO支持BatchUpdate,和BDE的UpdateSQL一样,想你用这个控制数据集会比较方便!
      

  8.   

    你讀取數據后有沒有將ADOquery1中的sql語句刪除啊?
      

  9.   

    楼主,我的系统使用一个adoquery(动态生成)对系统30对各表实现查询、修改、删除,往往一个界面使用它无数次。开始时也是出错,原因是上一个没有关闭又开始赋值等。现在运行很稳定。
    我就是为了节省资源
      

  10.   

    你在查询完后有没有清空adoquery的sql语句?
    要这样:adoquery1.sql.clear;
           adoquery1.sql.add('insert......'); //在此处插入sql语句;
           ......
           adoquery1.excesql;
    在query组件里不能同时有两个sql语句.    
      

  11.   

    查询后应该把Adoquery关闭
    再insert或delete
      

  12.   

    干吗要吝啬多使用一个对象呢?编程序不是少写代码就是好!关键是清晰健壮,你这样做事给自己找罪受,照你的习惯将来不知道会有多少Bug!
      

  13.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into..............');
    adoquery1.excesql