通过 ODBC 管理器的 DAO 连接未关闭

DAO connection via ODBC Manager not closing

我正在使用以下代码创建 DAO 连接:

Set myWorkspace = DBEngine.CreateWorkspace("MYAPP", "admin", "")

Set DB = myWorkspace.OpenDatabase(DBName, dbDriverNoPrompt, True, IDatenbank_BuildConnectionString(ODBCConnection))

IDatenbank_BuildConnectionString = "ODBC" & _
                                  ";DSN=" & ODBCConnection.Name & _
                                  ";Uid=" & ODBCConnection.User & _
                                  ";Pwd=" & ODBCConnection.Password

其中

IDatenbank_BuildConnectionString = ODBC;DSN=US Company Int;Uid=ALA1Bala;Pwd=hihihi

我正在使用以下代码关闭连接:

Set myWorkspace = Nothing

Set DB = Nothing

DB.Close()

问题是即使将 DB 对象设置为 null,连接也不会关闭。由于以前的原因,当新用户登录时,旧凭据将用于连接,并且连接对象是使用以前连接的属性创建的。连接会话似乎存在于 Oracle 数据库中。

如何在使用 DAO 驱动程序时破坏连接?此外,我必须提到,我可以通过使用 ADO 连接来使用替代日志记录选项,而且我没有遇到类似的问题,并且连接已关闭并正确地重新创建。

我可以用不同的方式创建连接,这样连接就会关闭:

Dim DB as DAO.Database
Dim DBE as DBEngine

Set DBE = new DBEngine
Set DB = DBE.Workspaces(0).OpenDatabase(DBName, dbDriverNoPrompt, true, IDatenbank_BuildConnectionString(ODBCConnection))

Call DB.Close
Set DB = Nothing
Set DBE = Nothing

要在 SQL 开发人员处查看是否有活动会话:

select * from v$session where username='<enter_your_username>'