0

我正在使用 Powershell v2.0,问题在标题中。我不得不使用老式的 ADOB.Connection(而不是OLEDB 提供程序)来打开 Jet DB 文件(.mdb)。原因很简单,ADODB.Connection 公开了我需要访问的属性,而 OLEDB 提供程序不需要。

我通过 ADOB.Connection 打开数据库以查询一些信息,然后我尝试使用 JRO.JetEngine 压缩数据库。问题是我不断收到有关 Jet DB 被锁定的错误。

我明确地调用了它,并将变量设置为 $null,但仍然遇到这个问题。我最好的猜测是 ADODB.Connection 正在使用连接池,因此没有以应有的方式释放资源。

根据http://support.microsoft.com/kb/191572,对 close() 的调用应该足够了,但它似乎不起作用。

有没有办法让我在创建 ADODB.Connection 对象时明确指定不连接池?

4

1 回答 1

0

在您提供的链接中,据说调用关闭会返回与池的连接:

2.什么语句返回连接池?2.Conn.关闭

您可能需要销毁/处置 ADODB.Connection 对象,以便将其从池中删除,或者,如果您使用 OLE DB 作为提供程序,请配置 OLEDB 服务,如下所述

启用 OLE DB 资源。可以通过多种方式启用资源池:

对于基于 ADO 的使用者,通过为每个唯一用户保留一个 Connection 对象的打开实例并使用 OLEDB_SERVICES 连接字符串属性来启用或禁用池。默认情况下,ADO 会尝试使用池,但如果您没有为每个用户保持至少一个 Connection 对象的打开状态,那么您的应用程序将没有可用的持久池。(但是,只要池中的连接尚未释放且最终未超时,Microsoft Transaction Server 就会保持池的持久性。)

于 2013-09-27T10:54:43.353 回答