通过 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>'
我正在使用以下代码创建 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>'