这个问题我也遇到,
Recordeset的recordcount总是为-1
是不是不可用呢?还是理解错了呢?顶!!!

解决方案 »

  1.   

    在存储过程开始加上:set nocount on 试试
    另外,向存储过程传参数时,把左右的空格除去试试
      

  2.   

    CREATE PROCEDURE product_pro(
      @company varchar(20)
    )
    AS
        select * from product where @company<>'1'
      

  3.   

    CREATE PROCEDURE product_pro(
      @company varchar(20)
    )
    AS
        select * from product where @company<>'1' or @company is not null
    GO
      

  4.   

    不是if错了,是<>'1'不能判断null你要该为:CREATE PROCEDURE product_pro(
      @company varchar(20)
    )
    AS
    if @company<>'1' or @company is null
      begin
        select * from product
      end
    GO
      

  5.   

    刚发现另一个问题,就是改变代码如下同样不能正常读取记录数:CREATE PROCEDURE stream_pro(
      @company varchar(20)
    )
    AS
    declare @sql nvarchar(1000)
    set @sql='select * from stream_apply'
    EXEC(@sql)
    GO
      

  6.   

    pengdali(大力 V2.0),你测试过么?不可行啊
      

  7.   

    rs.open "execute product_pro '11'",conn,1,1
      

  8.   

    djhai(不胜寒) 这个也不可能行得通啊
      

  9.   

    不是吧,你是在Asp.net上调用的把,你吧Cusor改为客户邮标就可以了
      

  10.   

    在打开服务器连接之前,设置:
    rs.CursorLocation = adUseClient
    同意 zjcxc(邹建)
    不过在服务器联机之前还是连接之后都可以,我已经测试过了代码
    Dim cnn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset
    Dim cnnstr As String
    Dim str As String
    cnnstr  "Provider=SQLOLEDB.1;server=server;uid=sa;pwd=;database=northwind"
    cnn.Open (cnnstr)
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = aa
    Set cmd.ActiveConnection = cnn
    rs.CursorLocation = adUseClient
    cnn.aa rs
    MsgBox rs.RecordCountok我测试过的
      

  11.   

    HenanBoy(天天学习) 你怎么测试的?
      

  12.   

    HenanBoy(天天学习) 你在什么平台上测试的啊?
      

  13.   

    yes!同意 HenanBoy(天天学习) 的:rs.CursorLocation = adUseClient
      

  14.   

    我的测试环境是:iis + ms-sql
    语言是:asp
      

  15.   

    我也觉得是游标问题。当游标在服务器上时,Recordeset的recordcount总是为-1