找回密码
 加入
搜索
查看: 2483|回复: 2

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

[复制链接]
发表于 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
=============================================
无法返回记录集, 求高手解答, 谢谢!!
发表于 2011-12-3 00:03:29 | 显示全部楼层
有个例子。
While Not $RS.eof And Not $RS.bof ; 当记录指针处于第一条记录和最后一条记录之间时,执行while循环 

    If @error = 1 Then ExitLoop 

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

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

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

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

        Next 

    EndIf 

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

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

    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 
 楼主| 发表于 2011-12-3 23:47:26 | 显示全部楼层
谢谢 nivisde
但我的意思是 以上例子如果调用没有参数的存储过程是没有问题的.
一但获取附带了参数的存储过程就出不来了. 不知道你们有没有试过.
数据导出到Excel是没问题的.  继续求解!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-26 20:21 , Processed in 0.075131 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表