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

问题描述 投票:0回答:1

我正在使用以下代码创建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连接来使用替代日志记录选项,并且我没有遇到类似的问题,并且该连接已关闭并完全重新创建。

我正在使用以下代码创建DAO连接:设置myWorkspace = DBEngine.CreateWorkspace(“ MYAPP”,“ admin”,“”)设置DB = myWorkspace.OpenDatabase(DBName,dbDriverNoPrompt,True,...] >

excel vba odbc ado dao
1个回答
1
投票

我可以以其他方式创建连接,并且该连接将关闭:

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
© www.soinside.com 2019 - 2024. All rights reserved.