我有一个旧的VB6应用程序,曾经连接到生产sybase数据库。该数据库最近已迁移到SQL Server 2008 R2,现在我正在更新应用程序以使其保持正常运行。 我得到的错误是" 关闭对象时不允许操作"。
这是VB6上代码的结构:
Dim sql as String
Dim connString as String
Dim conn as New ADODB.Connection
connString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CatalogName;Data Source=Production_Server_Name;"
sql = "EXEC sp_name @param1, @param2, @param3, @param4"
conn.Open connString
Dim Cmd as ADODB.Command
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = conn
Cmd.CommandText = sql
Cmd.CommandType = adCmdText
Cmd.CommandTimeOut = 300
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open sql, conn --> The Code fails on this line !!!
Set rs = Cmd.Execute()
If rs Is Nothing Or IsNull(rs) Then
Set rs = Nothing
bla bla bla
bla bla
End
存储过程代码如下:
CREATE PROCEDURE sp_name
(
@param1 as integer,
@param2 as integer,
@param3 as integer,
@param4 as nvarchar(150)
)
AS
SET NOCOUNT ON
-- All the code goes here
RETURN
代码结构备注 :
我已经做过的验证/建议已经尝试但没有成功 :
任何关于此主题错误的词语都会非常感激,并且会立即接受正确答案。
提前致谢
答案 0 :(得分:1)
您需要先打开连接。
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
conn.Open() <-- missing this
rs.Open sql, conn
Set rs = Cmd.Execute()