SQL="DECLARE @vBusinessType NVARCHAR(4000)" _
    &" SET @vBusinessType='TEST'" _
    &" SELECT * FROM TABLE_A" _
    &" WHERE TABLE_A.BUSINESS_TYPE LIKE @vBusinessType" _
    &" GROUP BY TABLE_A.BUSINESS_TYPE" _
set rs=Server.CreateObject("adodb.recordset")
rs.Open SQLstr, Conn,adOpenStatic ,adLockPessimistic
rs.Save Response, adPersistXML执行到rs.save时报错“对象关闭时,不允许操作”奇怪的是,去掉SET @vBusinessType='TEST'以后,rs能够返回数据。

解决方案 »

  1.   

    补充一下:
    1、SQL server 2000
    2、ASP
      

  2.   

    一般这样写sql
    SQL=" SELECT * FROM TABLE_A" _
      &" WHERE TABLE_A.BUSINESS_TYPE LIKE '%TEST%'" _
      &" GROUP BY TABLE_A.BUSINESS_TYPE"
      

  3.   

    做过  SET @vBusinessType='TEST' 操作以后 数据库连接就关闭了
    结果为  returnvalue=0 numcount=1如果要使用局部变量  请写在存储过程中
      

  4.   

    多谢两位。做了数个实验,的确是只能用存储过程。为什么执行SET @vBusinessType='TEST'后,数据库连接会关闭?
      

  5.   

    在declare前面加上 set nocount on  就可以了
      

  6.   

    declare前面加上 set nocount on 可以解决问题。不过知其所然,不知其所以然。麻烦哪位高手解释一下。
      

  7.   

    SELECT * FROM TABLE_A  WHERE TABLE_A.BUSINESS_TYPE LIKE '%TEST%'" 
      GROUP BY TABLE_A.BUSINESS_TYPE在 sql2000 group by TABLE_A.BUSINESS_TYPE 可以这样写?