当使用vb6关闭对象时不允许操作
问题描述:
我有一个从存储过程中获取数据的excel文件,它工作得很完美,现在我已经用另一个存储过程改变了存储过程,一个,但我得到一个错误:“当对象被关闭的操作是不允许的”,在循环:你虽然不是rsData.EOF当使用vb6关闭对象时不允许操作
世界到底是怎么发生的事情:
Set dbConnection = New ADODB.Connection
dbConnection.ConnectionString = connStr
dbConnection.ConnectionTimeout = 60
dbConnection.Open
Set Cmd = New ADODB.Command
Cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
Cmd.ActiveConnection = dbConnection
Dim myrealenddate As Date
'Create 2 output parameters
Set pm1 = Cmd.CreateParameter("@DateIni", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechainiG))
Set pm2 = Cmd.CreateParameter("@DateEnd", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechaendG))
'Append the output parameters to command object
Cmd.Parameters.Append pm1
Cmd.Parameters.Append pm2
Cmd.CommandText = "spProductionReportByDate"
'Cmd.CommandText = "sp_Report_Recv_Metrics"
Set rsData = New ADODB.Recordset
Set rsData.Source = Cmd
rsData.Open
I = 4
Do While Not rsData.EOF
I = I + 1
Sheet1.Range("A" & I).Value = rsData(0)
Sheet1.Range("B" & I).Value = rsData(1)
Sheet1.Range("C" & I).Value = rsData(2)
Sheet1.Range("D" & I).Value = rsData(3)
Sheet1.Range("E" & I).Value = rsData(4)
Sheet1.Range("F" & I).Value = rsData(5)
Sheet1.Range("G" & I).Value = rsData(6)
Sheet1.Range("H" & I).Value = rsData(7)
rsData.MoveNext
Loop
rsData.Close
dbConnection.Close
答
经过漫长的头痛后,我发现了这个问题。就像我说的,这是一件与SP的关系,良好的SP和不良SP之间的唯一区别是这条线:
SET NOCOUNT ON
我的上帝,这是错误的根源,一旦加到坏SP,它的工作!
非常感谢@Shane Wealti
显然'rsData'从未打开。 – 2012-01-03 20:29:30
确实是这样的原因,但是如何,rsData.Open – Somebody 2012-01-03 20:35:16
rsData.Open可能是错误的。找出错误并更新您的问题。 – 2012-01-03 20:36:29