Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 创建表或选择进入过程时,执行存储过程时发生VB6数据库关闭错误_Sql_Sql Server_Vb6_Adodb - Fatal编程技术网

Sql 创建表或选择进入过程时,执行存储过程时发生VB6数据库关闭错误

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 = '" &

我有一个正在修改的应用程序。最初,有一个巨大的内嵌式SQL块,它被执行以返回一些数据。由于请求更改,我将其放入一个存储过程中,该存储过程不仅仅返回数据,现在我正在尝试执行。以下是我无法使用的代码:

 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”一起使用