Sql 创建表或选择进入过程时,执行存储过程时发生VB6数据库关闭错误
我有一个正在修改的应用程序。最初,有一个巨大的内嵌式SQL块,它被执行以返回一些数据。由于请求更改,我将其放入一个存储过程中,该存储过程不仅仅返回数据,现在我正在尝试执行。以下是我无法使用的代码:Sql 创建表或选择进入过程时,执行存储过程时发生VB6数据库关闭错误,sql,sql-server,vb6,adodb,Sql,Sql Server,Vb6,Adodb,我有一个正在修改的应用程序。最初,有一个巨大的内嵌式SQL块,它被执行以返回一些数据。由于请求更改,我将其放入一个存储过程中,该存储过程不仅仅返回数据,现在我正在尝试执行。以下是我无法使用的代码: Dim oConnCRS as CRS_Connection Dim sSQL As String Dim oRS_ReturnRecs As ADODB.Recordset sSQL = "EXECUTE dbo.StoredProcedure @StartDate = '" &
Dim oConnCRS as CRS_Connection
Dim sSQL As String
Dim oRS_ReturnRecs As ADODB.Recordset
sSQL = "EXECUTE dbo.StoredProcedure @StartDate = '" & dStartDate & "', @EndDate ='" & dEndDate & "'"
Set oConnCRS = New CRS_Connection
Set oRS_ReturnRecs = New ADODB.Recordset
With oRS_ReturnRecs
.Open sSQL, oConnCRS.Connection, adOpenForwardOnly, adLockReadOnly, adCmdText
If .EOF Then
.Close
Me.MousePointer = vbDefault
MsgBox "No return file activity to report", vbExclamation + vbOKOnly, APP_NAME
Exit Sub
End If
如果我将sSQL更改为类似于Select Column from Table Where Condition的内容,它就可以正常工作了
存储过程将一组信息加载到临时表中,对其进行修改,然后从临时表中选择所有记录
我已尝试在打开时更改上的各种设置,但在上仍然出现错误
If .EOF then
错误是:对象关闭时不允许操作
CRS_Connection是一个包含数据库所有连接信息的对象,在新的实例化中会自动打开连接 我们非常感谢任何关于我们做错了什么的指导或建议 新发现: 我开始在另一个应用程序中再次遇到这个问题。我创建一个临时表,用数据填充它,然后从中进行选择。当我这样做的时候,我得到了我以前经历过的相同的关闭错误 当我删除select into或create表时,它会毫无问题地执行
在存储过程中创建临时表会导致VB6关闭连接吗?有解决方法吗?我遇到了与您描述的类似的问题 在存储过程开始时添加SETNOCOUNT ON为我解决了这个问题 如果这不能解决问题,还有一些建议:
请在连接日期后粘贴sSQL var内容。我不熟悉MSSQL,但我想日期应该以mm dd yyyy而不是引号传递。不确定当您更改为从表where条件中选择列时,代码将如何工作。您似乎缺少连接字符串并在代码中打开了连接。你粘贴了完整的代码还是只是其中的一部分?编辑成正确的标记,它的MSSQL 2008CRS_连接是一个包含数据库所有连接信息的对象,在新的实例化时会自动打开连接。是的,我不知道这个错误来自何处,或者为什么它与常规的“Select*from xxx”而不是“exec storedproc”一起使用