gpt4 book ai didi

vb.net - 如何在 VB.NET Windows 应用程序中创建 ADODB 断开连接的记录集?

转载 作者:行者123 更新时间:2023-12-03 00:18:50 25 4
gpt4 key购买 nike

我使用 OLEDB 连接到 Sybase 数据库,ADODB.dll 文件版本为 7.10.6070.0(来自 Sybase 12.5 软件包)。我需要能够打开连接,使用命令对象从存储过程填充记录集,然后关闭连接并传回断开连接的记录集。到目前为止,我的尝试失败了,因为每次关闭连接时,我的记录集也会关闭(这意味着它没有断开连接)。

是否有一个我必须在某处设置的属性来指示应该断开记录集?我无法设置 Recordset.ActiveConnection = False,因为出现异常(“无法更改以 Command 对象作为源的 Recordset 对象的 ActiveConnection 属性。”)。我确实设置了 Command.ActiveConnection = False,但这并不能阻止记录集在我关闭连接对象后立即关闭。

片段:

Dim conn as New ADODB.Connection()
conn.Open("connectionString", "UserID", "Password")
Dim cmd as New ADODB.Command()
' Set some parameters on the command.
cmd.ActiveConnection = conn
cmd.CommandText = "StoredProcedureName"
cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
Dim rs as New ADODB.Recordset()
rs.Open(cmd)
Dim clonedRS as ADODB.Recordset = rs.Clone() ' one attempt to disconnect recordset
rs.Close() ' Does not close cloned recordset
cmd.ActiveConnection = Nothing ' another try at disconnecting recordset
conn.Close() ' Always closes the recordset, even the cloned one
return clonedRS ' Sadly, this is closed now.

最佳答案

我不知道这是否能解决您的问题,但我进行了 Google 搜索并发现了这篇文章 Disconnect an ADO Recordset generated from a Command object ,您可以使用它来修改您的代码,如下所示:

Dim conn as New ADODB.Connection()
conn.Open("connectionString", "UserID", "Password")
Dim cmd as New ADODB.Command()
' Set some parameters on the command.
cmd.ActiveConnection = conn
cmd.CommandText = "StoredProcedureName"
cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc

Dim rs As ADODB.Recordset

With rs
.CursorLocation = adUseClient
.Open cmd, CursorType:=adOpenStatic, Options:=adCmdStoredProc
Set .ActiveConnection = Nothing
End With

Dim clonedRS As ADODB.Recordset = rs

Set cmd = Nothing

conn.Close()
rs.Close()
Set conn = Nothing
Set rs = Nothing

Return clonedRS

还有来自 4GuysFromRolla Using Disconnected Recordsets 的另一个示例具有相同的方法。

编辑

充实了这个例子。

关于vb.net - 如何在 VB.NET Windows 应用程序中创建 ADODB 断开连接的记录集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com