开发语言:delphi6。0    后台:SQL2000;连接方式:ADO ;操作系统:win2000 server存储过程:zl_exzam_list
内容:
-------------------------------
CREATE PROCEDURE zl_exzam_list ASif exists (select * from dbo.sysobjects where id = object_id(N'[zl_list]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [zl_list]
declare @s varchar(8000)
set @s=''
select @s=@s+',['+item_name +']=max(case item_name when '''+item_name +''' then item_value else '''' end)'
from ZL_MattAnaly
group by  item_name
print @S
exec('
   select pno as 质检号'+@s+'
into  zl_list from ZL_MattAnaly 
group by pno ')
 select top 10 * from zl_list
GO
----------------------
  
故障现象:   我在开发环境机器上面运行我的程序没有任何问题,都可以顺利的运行通过,并能导出存储过程产生的表,但是在一台干净的98,或者是2000 机器上就不能通过,一点击“导出”按钮就没有任何提示异常,应用程序就自动退出关闭了,连换了几台都是这样,导出按钮里面就是几句话:
ADO_list.Close;
ADO_list.SQL.Clear ;
ADO_list.SQL.Add ('exec zl_exzam_list ' );
showmessage('ok');
ADO_list.Open ;一执行到 ADO_list.Open 就应用程序自动退出,根本无法调试,因为开发机器上面运行都是正常的,而在干净系统上面如果装了delphi和sql就很正常;
我换了几种执行方式,包括用ADOStoredProc,去执行存储过程,或者把存储过程直接写入adoquery内执行,在开发机上都能运行,一放下去就不能运行,不知为何故,请各位高级工程师看下吧!
    急啊,整个人都郁闷的!!!!!

解决方案 »

  1.   

    干净的98,或者是2000更新了MDAC了吗?
      

  2.   

    啊,这个问题就比较麻烦啦。还要更新MDAC吗,那和装一个sql差不多啊。
      

  3.   

    至少需要MDAC2.7!我安装了2.8!
      

  4.   

    ADO_list.Close;
    ADO_list.SQL.Clear ;
    ADO_list.SQL.Add ('exec zl_exzam_list ' );
    showmessage('ok');
    ADO_list.Open ;
    换成
    ADO_list.Close;
    ADO_list.SQL.Clear ;
    ADO_list.SQL.Add ('exec zl_exzam_list ' );
    ADO_list.Open ;
    showmessage('ok');
    再测试。
      

  5.   

    不更新用不了。更新MDAC和装一个sql差不多???不会吧download:
    http://www.ten-design.net/delphi/mdac_typ.exe