开发环境:Delphi 2010、Windows 7
数据库:SQL SERVER 2008 STD
客户机:WINDOWS 7
        WINDOWS XP SP2\SP3(MDAC 2.8SP1) 编译程序中以下语句在WINDOWS 7客户机上使用正常、XP上错误SELECT 字段1,字段2 ,(SELECT COUNT(A字段) FROM 表2) AS 字段3
FROM 表1期待高手

解决方案 »

  1.   

    语法肯定是正确的,在管理器里、Win7下都正常,就是XP出错
      

  2.   

    什么错误提示?你这个语法虽然正确,但表1如果有多条记录的话,就会有错误。
    “字段1,字段2”多条。
    “(SELECT COUNT(A字段) FROM 表2) AS 字段3”单条?
      

  3.   

    1、先弹出一个windows 类是内存地址错误,然后确定后又跳出NTDLL.DLL错误,再确定后跳出 msado15.dll错误
    2、不会出现多条记录
      

  4.   


    他是SELECT COUNT() ...  表1, 表2不管有多少条记录也没问题的
    问题不是出在这里吧
      

  5.   

    我觉得应该是OS驱动的问题,XP的MDAC 是2.8但Win7 是6.1
      

  6.   

    msado15.dll 这个提示肯定和操作系统有关系啊
      

  7.   


    当然了,不然怎么WIN7、Win2008上都正常,就XP不正常啊
      

  8.   

    你先试
    SELECT 字段1,(SELECT COUNT(A字段) FROM 表2) AS 字段3
    FROM 表1再试
    SELECT 字段2 ,(SELECT COUNT(A字段) FROM 表2) AS 字段3
    FROM 表1看看行不行,很可能是  字段1, 字段2 有某些特别字符
      

  9.   


    应该是驱动问题,但是XP的MDAC驱动已经是最新的了
      

  10.   

    语法看起来没问题 你可以尝试用条简单的语句 如果在xp上也报错 那就是驱动问题 如果不报错 那可能是这条看起来语法没问题的sql语句有问题 你可以尝试加[ ]把字段括起来 或者写存储过程去执行 看正不正确 要判断问题出在哪 才能解决问题
      

  11.   


    一套系统,共700条左右SQL语句,就涉及这种语法的功能会错误
      

  12.   

    SELECT A.字段1,A.字段2,B.字段3
    FROM 表1 A CROSS JOIN
              (SELECT COUNT(A字段) 字段3 FROM 表2) B用这种模式看看能否解决