PostgreSQL连接到MS Access 2013 64位故障

问题描述

我正在尝试使用某些fdw在Windows 10(64位)上的Postgresql 12 64位与Windows 8.1 64位上的MS Access 2013(64位)之间建立连接。在这方面,我: -使用MSAccess 64位驱动程序(msdata)设置系统DSN不幸的是,MS删除了针对 访问数据库连接,但可以正常工作。 -使用ogr_fwd我可以设置外部数据包装器,但是在设置外部服务器时,它拒绝了以下选项: [dsn:msdata](dsn无效选项), [数据源:'Z:/database.accdb',格式:'MDB'](无法使用“ OCDB”作为 格式), [数据源:'msdata']或[数据源:'OCDB:msdata](无法连接到数据源xxxx) 最终,y放弃了使用ogr_fwd,但是我能够通过MysqL
使用它连接到MysqL数据库 64位驱动程序。

我尝试了ocdb_fdw时还有些运气。能够创建外部服务器;用户映射和两个外部表,但是当我尝试在三个记录表上运行一个简单的查询时,它却永远显示了结果-我试图在外部表上将选项“ use_remote_estimate”设置为相同的结果。 我将其设置如下:

CREATE FOREIGN DATA WRAPPER odbc_wrapper
    VALIDATOR public.odbc_fdw_validator
    HANDLER public.odbc_fwd_handler;

CREATE FOREIGN SERVER odbc_server
    FOREIGN DATA WRAPPER odbc_wrapper
    OPTIONS(dsn 'msdata');

CREATE USER MAPPING FOR PUBLIC (Ms Access database not password protected)
    SERVER odbc_server;

CREATE FOREIGN TABLE public.sex
    id integer NOT NULL,sex character varying(20)[] NOT NULL
    SERVER obdc_server
    OPTIONS (use_remote_estimate 'True'); -- run with and without this option --

如上所述,odbc_fdw允许对其进行设置,但是我无法从中获取任何返回数据。 使用Ms Access MSConnector从Ms Access链接表工作正常,但不幸的是,它仅允许链接现有的Postgresql表,这不是我所需要的。我认为这个 与Ms Access驱动程序的32/64位混乱有关,但我找不到解决方法
任何帮助将不胜感激。

编辑:经过一段时间的努力,我发现我的MS Driver问题与odbc_fdw或Postgresql不相关,但与Windows本身无关。修复问题后,使用pyodbc进行测试时,驱动程序(和DSN系统数据源)可以正常工作。 这解决了冻结(或长时间运行)的问题,但是在外部表上运行查询时,我遇到了另一个问题,即“错误:连接到驱动程序sql状态:58000-代表Postgresql外的错误。 我在外部表上尝试了几个选项,例如odbc_DATABASE数据库名; 模式数据库名称; odbc_table表名具有相同的结果。 我仍然不知道为什么ogr_fdw无法识别MsAccess 64位驱动程序。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)