ADO用使用存储过程老说我纪录集关闭,不知道什么原因 ? 十万火急
火鸟33 2003-12-03 10:59:59 Private Sub BOK_Click()
Dim conn As ADODB.Connection
DBServer = "127.0.0.1"
DBName = "tollsys_s"
DBUser = "sa"
DBPwd = "searitollsys"
DBTimeOut = 60
Set conn = New ADODB.Connection
conn.ConnectionTimeout = DBTimeOut
conn.ConnectionString = "Provider=SQLOLEDB.1;Password=" + DBPwd + ";Persist Security Info=True;User ID=" + DBUser + ";Initial Catalog=" + DBName + ";Data Source=" + DBServer + ""
conn.Open
Dim ChargeRD As ADODB.Command
Dim rs As ADODB.Recordset
StoredProcedure = "[dbo].[substation_print_charge]"
Set ChargeRD = New ADODB.Command
Set rs = New ADODB.Recordset
'用这段和用参数调用存储过程一样,也说纪录集关闭
'rs.Open "exec [dbo].[substation_print_charge] ""12 1 2002 12:00:00:000AM"", ""12 1 2002 12:00:00:000AM"", ""1F010000000009010001000006"", 2", conn, , adCmdStoredProc
'用这段代码,又没有问题,一切正常
'rs.Open "select * from ExitRecordDayTemp", conn, , adCmdText
''
Set ChargeRD.ActiveConnection = conn
Set rs.ActiveConnection = conn
ChargeRD.CommandText = StoredProcedure
' always use ADO constants
ChargeRD.CommandType = adCmdStoredProc
' Check into the NamedParameters property at some point
' It doesn't require the order to be enforced, but it is always a good idea to enforce it anyway (for the documentation aspect of coding)
' RETURN parameter needs to be first
ChargeRD.Parameters.Append ChargeRD.CreateParameter("RETURN", adInteger, adParamReturnValue, 1)
ChargeRD.Parameters.Append ChargeRD.CreateParameter("@TDBegin", adDate, adParamInput, 8, "2002-12-01")
ChargeRD.Parameters.Append ChargeRD.CreateParameter("@TDEnd", adDate, adParamInput, 8, "2002-12-01")
ChargeRD.Parameters.Append ChargeRD.CreateParameter("@NodeID", adChar, adParamInput, 26, "1F010000000009010001000006")
ChargeRD.Parameters.Append ChargeRD.CreateParameter("@Type ", adTinyInt, adParamInput, 1, 2)
Set rs = ChargeRD.Execute
'rs.Open
'下面老说我纪录集关闭,不知道什么原因
rs.MoveFirst
While Not rs.EOF
ChargeReport.Range("A1").Select
'Òƶ¯µ½´°Ìå×îµ×²¿
Selection.End(xlDown).Select
'Òƶ¯µ½´°Ìå×î×ó±ß
Selection.End(xlToLeft).Select
'½«´°ÌåµÄÊäÈëÖµ±£´æµ½´°Ìå×îºóн¨µÄÒ»Ìõ
ActiveCell.Offset(1, 0).Range("A1") = rs.Fields(1)
ActiveCell.Offset(1, 0).Range("B1") = rs.Fields(2)
ActiveCell.Offset(1, 0).Range("C1") = rs.Fields(3)
ActiveCell.Offset(1, 0).Range("D1") = rs.Fields(4)
ActiveCell.Offset(1, 0).Range("E1") = rs.Fields(5)
ActiveCell.Offset(1, 0).Range("F1") = rs.Fields(6)
rs.MoveNext
Wend
rs.Clone
conn.Close
End Sub