dz138 发表于 2011-12-2 16:00:54

调用存储过程, 添加参数后无法输出记录集,求解!!

本帖最后由 dz138 于 2011-12-2 16:02 编辑

有存储过程名: WIBF_Summary, 有参数 @year , @Month 主要用于数据筛选输出记录集$Cnn=ObjCreate("ADODB.Connection")
$Cnn.open("DRIVER={SQL Server};SERVER="&$sServer&";UID="&$susername&";PWD="&$spassword&";Database="&$sdatabase)
$Rs=ObjCreate("ADODB.Recordset")

$Comm = ObjCreate("ADODB.Command") ;建一个command对象
With $Comm
        .ActiveConnection = $Cnn
        .CommandText = "WIBF_Summary" ;定义command 对象调用名称,即存储过程名称
        .CommandType = 4   ;设置command调用类型是存储过程
        .Prepared = True ;将SQL命令先行编译
        .Parameters.Append (.CreateParameter("@Year",3,1,4,$TYear))
        .Parameters.Append (.CreateParameter("@Month",3,1,4,$TMonth))
EndWith
$Rs = $Comm.Execute
$x=1
While Not $RS.eof and Not $RS.bof
        If @error = 1 Then ExitLoop
        if $x=1 then
                Local $oExcel = _ExcelBookNew()
                For $i = 1 To $colcount ;Loop
                        _ExcelWriteCell($oExcel, $Rs.Fields($i-1).name,$x, $i )
                Next
                $x=$x+1
        endif
        For $i = 1 To $colcount ;Loop
                _ExcelWriteCell($oExcel, $Rs($i-1).value,$x, $i )
        Next
        $x=$x+1
        $rs.movenext
wend
;endif
msgbox(0,"完成","完成!")
$Rs.close
$Cnn.close=============================================
无法返回记录集, 求高手解答, 谢谢!!

nivisde 发表于 2011-12-3 00:03:29

有个例子。
While Not $RS.eof And Not $RS.bof ; 当记录指针处于第一条记录和最后一条记录之间时,执行while循环

    If @error = 1 Then ExitLoop

    If $Select_Db = 0 Then ; 当数组二维$Select_Db为0时,重定义数组的第二维大小等于记录集查询到的字段数

      ReDim $Select_Db[$RS. Fields . Count + 1] ;$RS.Fields.Count 为记录集查询到的字段数

      For $i = 0 To $RS. Fields . Count - 1

            $Select_Db[$i + 1] = $RS. Fields ($i). Name ;$RS.Fields($i).Name 为字段名,把字段名存入数组

      Next

    EndIf

    ReDim $Select_Db[$Count + 1][$RS. Fields . Count + 1] ; 数组第一维大小加1,用于存放数据

    $Select_Db = $Count ;$Select_Db 存放查询到的数据行数

    For $i = 0 To $RS. Fields . Count - 1

      $Select_Db[$Count][$i + 1] = $RS. Fields ($i). Value ;$RS.Fields($i).Value 字段数据

    Next

    $Count += 1 ; 行数加1

    $RS. movenext ; 将游标移到下一条数据上

WEnd

dz138 发表于 2011-12-3 23:47:26

谢谢 nivisde
但我的意思是 以上例子如果调用没有参数的存储过程是没有问题的.
一但获取附带了参数的存储过程就出不来了. 不知道你们有没有试过.
数据导出到Excel是没问题的.继续求解!!!
页: [1]
查看完整版本: 调用存储过程, 添加参数后无法输出记录集,求解!!