我在delphi中用的是ADOConnection1,数据源用的是microsoft ole db provider for odbc dirvers。但是程序中在有的地方我用,如:adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('update sp_kc set sp_kc_total=0');
adoquery1.ExecSQL ;就会出现下面的提示:
access violation at address 1f487cab in module'msado15.dll',write of address 02995020如果你把上面的事件放在create事件中,就不出错,但是在别的事件中就出错。
(机器安装了delphi,就不提是出错)
为什么?主要还是adoquery1.ExecSQL 问题。
这问题让我很狼狈,本来程序在我的机器上好好的,到客户那里就出问题。

解决方案 »

  1.   

    客户端要安装一个数据访问组件,或者装一个ACCESS
      

  2.   

    客户机器都有access的,和这个没关系的。
      

  3.   

    我个人觉得可能的原因是ADOQuery控件被释放了,问题应该是在这里吧。
      

  4.   

    更新一下客户机的mdac版本看看
      

  5.   

    机器安装了delphi,就不提示出错?
    程序在你的机器上好好的,到客户那里就出问题?——我觉得很大的可能是客户机器上少了某个用作数据库用途而需要被你程序调用的dll,而这个dll在你自己的机器上由于编译环境完善已经装入并注册了。把那个dll给客户拷入然后注册可能就行了。
      

  6.   

    to juliens(星星球) :
    不怕能笑话,什么是MDAC?如何升级?我用得是delphi 7.0 和sql server 2000数据库。
    帮我解决了,我给您加分,谢谢了。to honestsky(晓彷) :
    即使我知道少了dll,可是我又怎么知道少了哪个呢?总不能把dll全部拷贝过去再试吧?
      

  7.   

    http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c
      

  8.   

    我觉得应该是在客户机上没有注册某些文件造成的。你应该仔细查一下delphi注册的文件
      

  9.   

    msado15.dll这个就是MDAC里面的!~