首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PostgreSQL和Access --启动时连接与需要时连接

PostgreSQL和Access --启动时连接与需要时连接
EN

Stack Overflow用户
提问于 2018-09-20 06:40:20
回答 1查看 42关注 0票数 1

我有一个带有Access 2016前端的ODBC9.5数据库,使用PostgreSQL驱动程序将两者连接起来。如果我想查询数据,我会从以下命令开始:

代码语言:javascript
复制
Dim conn As New ADODB.Connection
conn.Open "Driver={PostgreSQL ANSI};Server=localhost;Database=[name];User Id=[UID];Password=[pass];"

Dim cmd As New ADODB.Command
cmd.ActiveConnection = conn

我的问题是:为什么我不应该在应用程序打开时建立这个连接,在我需要运行查询时使用这个连接,而不是每次运行查询时打开和关闭连接?

我不确定在Access中建立这样的连接所涉及的开销(如果有的话),并且我一直无法找到有关该主题的任何信息。如果这是一个天真的问题,很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 07:15:14

无论如何,连接都会被Access缓存。

一旦您触摸或打开任何链接表,则该连接现在处于活动状态,并由Access重新使用。

通常,如果查询是针对单个表的,那么就没有理由不针对链接表进行编码。

例如:

代码语言:javascript
复制
   Dim rst     As DAO.Recordset
   Dim strSQL  As String

   strSQL = "select * from tblInvoices where invoiceNum = 13355"

   Set rst = CurrentDb.OpenRecordset(strSQL)

如果您使用直通查询,则可以很好地执行以下操作:

代码语言:javascript
复制
Sub Test555()

   Dim rst     As DAO.Recordset

   With CurrentDb.QueryDefs("qryPass")
      .SQL = "select * from tblInvoices where invoiceNum = 13355"
      Set rst = .OpenRecordset
   End With

End Sub

这样做的原因是你不需要在你的代码中弄乱或者麻烦使用连接字符串。

只需确保您的表重新链接代码也重新链接任何直通查询。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52415106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档