AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2360
Accepted
Guy C
Guy C
Asked: 2009-05-02 05:18:09 +0800 CST2009-05-02 05:18:09 +0800 CST 2009-05-02 05:18:09 +0800 CST

Access 通过 ODBC 连接到远程 Postgresql 数据库是否可用?

  • 772

我目前有一个通过 ODBC 连接到 PostgreSQL 数据库的 MS Access 应用程序。这在有 20 个用户的 LAN 上成功运行(每个用户都运行自己的 Access 版本)。现在我正在考虑一些灾难恢复方案,似乎保护数据的一种快速简便的方法是使用日志传送来创建热备份。

这让我想到了把这个暖备用设备放在一个偏远的地方,但是我有一个问题:

Access 通过 ODBC 连接到远程数据库是否可用?即远程数据库可能在同一个国家,ping 时间还可以,而且我有一条 1mbit SDSL 线路。

microsoft-access postgresql odbc
  • 3 3 个回答
  • 1798 Views

3 个回答

  • Voted
  1. Best Answer
    Avery Payne
    2009-05-02T14:29:14+08:002009-05-02T14:29:14+08:00

    简短的回答:是的。

    长答案:如果您要返回较小的数据集,是的。您还需要在 pgodbc 驱动程序中启用特定的标志和设置,因为 Access 将拒绝从服务器反馈给它的内容:

    KSQO(键集查询优化)应该打开。是的,我知道文档说这不是必需的,但正在发生的事情是 MSAccess 正在向服务器传递一些看起来相当粗糙的 SQL。这只是稍微整理了一下 SQL 语句。不相信我?打开 ODBC 日志记录,发送单个查询,关闭日志,翻过几兆的谷壳,在 90% 的过程中,您会看到生成并传递了一条看起来很糟糕的 SQL 语句。不,这不是ODBC 驱动程序,而是 Access 这样做的。

    如果您计划以交互方式查看大型数据集,则应启用使用 Declare/Fetch 。这将导致驱动程序从结果集中获取较小的块,而不是将一个怪物负载转储到其中。

    文本为 LongVarChar - 您可能希望对此进行测试。我怀疑你会想要它“打开”。

    未知大小应设置为最大值。

    Max Varchar建议设置为 254 或更低,但您可以设置更多。

    额外选项- 设置为 0x6(假 MS SQL Server + ANSI 而非 Unicode 回复)。

    (所有这些都可以在http://psqlodbc.projects.postgresql.org/config.html找到)

    请记住,大型数据集会给您带来痛苦,尽管从服务器返回的数据通常是紧凑的二进制格式。

    • 4
  2. John McC
    2009-05-02T18:42:17+08:002009-05-02T18:42:17+08:00

    我在 MSA 和 WAN 数据库方面的经验从未如此出色。总会有一段时间,Access 决定从数据库中提取大量数据。我成功的两种方法是将 Access 前端也放在远程服务器上并使用终端服务器。或者使用 SQL Passthrough 查询,以便您明确控制传入/传出数据库服务器的内容。

    • 1
  3. David W. Fenton
    2010-08-31T12:30:54+08:002010-08-31T12:30:54+08:00

    为了让 Access 应用程序在这种情况下正常工作,它必须被设计为检索最少的数据,并且可能最适合未绑定的表单,因为 Access/Jet/ACE 需要每秒左右 ping 一次远程数据库以刷新数据以绑定的形式显示。由于可以在 Access 中设置 ODBC 刷新间隔,因此在走完全不受约束的极端路线之前应该先试验一下,因为这意味着您将错过使用 Access 作为前端的 90% 的好处。

    总的来说,我认为所描述的场景并不特别可行。这将意味着摇摆不定的尾巴,而您的灾难故障转移计划将推动您常规应用程序的设计。我想说让 Windows 终端服务器在远程数据库服务器附近托管应用程序将是一个更好的解决方案,因为它不需要对 Access 应用程序进行重大更改。

    • 0

相关问题

  • 哪个数据库服务器扩展性更好:PostgreSQL 还是 MySQL?

  • Windows 2003 ODBC 问题 - 错误 10055

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve