我正在使用以下代码创建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连接来使用替代日志记录选项,并且我没有遇到类似的问题,并且该连接正在关闭并完全重新创建。
答案 0 :(得分: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
要在SQL Developer中签入您是否有活动的会话,请执行以下操作:
select * from v$session where username='<enter_your_username>'