今天delphi开发应用程序,ADO+ACCESS (ODBC连接方式).
原来运行好好的,今天测试在别人机器上,会出错(5台可以用,2台不行)。
把代码在不能运行的机器上调试,在放回原来可以用的机器上调试,变成不能用了。
提示错误:Access violation at address 1B7F7EB1 in module 'MSJTES40.dll'
其中单个adoquery数据连接,查询,更新,都可以。程序中SQL比较复杂,都是用
Parameters.ParamValues赋值参数。

解决方案 »

  1.   

    ADO+Access怎么是ODBC连接方式?打打MDAC或ADO的补丁试试看
      

  2.   

    是否ADO的connection 用了绝对路径?
      

  3.   

    有ado连接,不要用odbc,另外如果是D5注意打两个ado的补丁
    或者用我的解决办法:
    ......
    adoquery1.open;
    .......
    adoquery1.close;
    adoconnection1.connected:=false;
    adoconnection1.connected:=true;
    adoquery1..........
      

  4.   

    如果裝上MADC2.8就不會有問題的了。
      

  5.   

    忘了说了是DELPHI 6写的程序.
      

  6.   

    主要是象这样的SQL句子有的机器会出错,有的不会.
    [代码]
    SQL.Add(' Select *,Str(bznum)+mindanwei+''/''+maxdanwei as bzname,');
          SQL.Add(' (select str(qrnum)+danwei from MonthQRTable where hosid='+IntToStr(HosId)+' and QRYear='+IntToStr(TempY)+' and QRMonth='+IntToStr(TempM)+' and zbid=zbtable.zbid) as tempqrnum ,');
          SQL.Add(' (select danweitype from MonthQRTable where hosid='+IntToStr(HosId)+' and QRYear='+IntToStr(TempY)+' and QRMonth='+IntToStr(TempM)+' and zbid=zbtable.zbid) as tempdanweitype   ,');
          SQL.Add(' (select CGMoney from MonthQRTable where hosid='+IntToStr(HosId)+' and QRYear='+IntToStr(TempY)+' and QRMonth= '+IntToStr(TempM)+' and zbid=zbtable.zbid) as CGMoney ');
          SQL.Add(' from zbtable,ownqrtable where zbtable.zbid=ownqrtable.zbid and ownqrtable.hosid='+IntToStr(HosId));
          SQL.Add(' '+SQL_where);
          SQL.Add(' '+SQL_Orderby);
    [SQL语句]
    Select *,Str(bznum)+mindanwei+'/'+maxdanwei as bzname,
           (select str(qrnum)+danwei from MonthQRTable where hosid=1 and QRYear=2003 and QRMonth=1 and zbid=zbtable.zbid) as tempqrnum ,
           (select danweitype from MonthQRTable where hosid=1 and QRYear=2003 and QRMonth=1 and zbid=zbtable.zbid) as tempdanweitype   ,
           (select CGMoney from MonthQRTable where hosid=1 and QRYear=2003 and QRMonth= 1  and zbid=zbtable.zbid) as CGMoney 
            from zbtable,ownqrtable where zbtable.zbid=ownqrtable.zbid and ownqrtable.hosid=1 order by zbtable.zbid
    把SQL语句放在SQL SERVER里运行好好的,在ACCESS里有的机器可以,有的机器不可以.
      

  7.   

    逼不得已,把SQL简化,用上计算字段,不会出错了.
    和原来的程序相比,更新数据,DBGIRD显现的时候比较慢呀.
    请高手指点,如何解决?
    最好只有SQL语句.