问题标签 [sqlalchemy-access]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1314 浏览

python - SQLAlchemy - MS Access 连接失败

我正在尝试使用 sql alchemy 连接到 MS Access。我的访问是 64 位的。我已经尝试过 32 位 python 和 64 位 python。结果是一样的。

它使用 pyodbc 工作:

但使用 sqlalchemy 失败:

我得到错误:

无法加载插件:sqlalchemy.dialects:access

0 投票
1 回答
360 浏览

python - 使用 fast_executemany 写入 MS-Access DB 不起作用

我在将数据加载到访问数据库时遇到问题。出于测试目的,我构建了一个小转换函数,它从 hdf 文件中获取所有数据集并将其写入 accdb。没有@event.listens_for(engine, "before_cursor_execute")它的功能,但速度很慢。有了它,它会产生一种奇怪的行为。它在数据库中只创建一个空表(从第一个 df 开始)并完成执行。for 循环永远不会完成,也不会引发错误。

可能是因为该sqlalchemy-access包不支持 fast_executemany 但找不到任何相关信息。你们中有人对我有什么意见吗?我该如何解决它或能够以更快的方式将数据写入数据库?

非常感谢!

0 投票
1 回答
120 浏览

python - 从 URL 读取 Zip 文件并将 Ms Access 文件转换为数据框

我写这条消息是为了寻求帮助,以便为这个 python 代码找到解决方案。与我公司的零件数据库相比,我正在尝试生成 FAA PMA 零件的可视化。我已经使用 Power Bi、SQL 查询和 Excel 文件完成了它,但它不是在线可视化。每个月我都必须从 URL ( https://rgl.faa.gov/Regulatory_and_Guidance_Library/rgPMA.nsf/f6a80b2e3c91131686257bcf0063a042/bc1b3424cc899bee86257beb006237ae/$FILE/PMA.zip ) 下载 FAA PMA 部件以更新此可视化。

话虽如此,我已经尝试执行这些 python 代码,以便从上述 Url 读取 Ms Access 文件并将其转换为 Pandas DataFrame。

但是,由于以下原因,我没有成功完成这项任务:

首先,我尝试使用 sqlalchemy,但出现了以下错误。

错误:回溯(最近一次调用最后):文件“C:/Users/thiago.ribeiro/.PyCharmCE2019.1/config/scratches/scratch.py​​”,第 17 行,在 engine = create_engine(connection_url) 文件“C:\用户\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\ engine_init_.py”,第 500 行,在 create_engine 返回 strategy.create(*args, **kwargs) 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy \engine\strategies.py”,第 61 行,在创建入口点 = u._get_entrypoint() 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\engine \url.py”,第 172 行,在 _get_entrypoint cls = registry.load(name) 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\ langhelpers.py”,第 267 行,在加载中引发 exc.NoSuchModuleError(sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy.dialects:access.pyodbc

之后我尝试使用pyodbc,但也出现了以下错误。

错误:回溯(最近一次调用最后一次):第 17 行,在 cnxn = pyodbc.connect(driver=access_driver, dbq=filepath, autocommit=True) pyodbc.Error: ('HY000', '[HY000] [Microsoft][Driver ODBC Microsoft Access] 一般错误无法打开注册表项临时(易失性)Ace DSN 进程 0x2efc 线程 0x4a20 DBC 0xd39ea788

综上所述,能否请您帮助我了解我的代码哪里出了问题,以及如何改进它以便从 url 读取 MS Access 并将其转换为 pandas 数据框?

0 投票
0 回答
585 浏览

python - PyInstaller 不包括 sqlalchemy-access 模块

我正在尝试将 Dataframe 写回 Access 数据库文件.mdb.accdb. 我正在使用sqlalchemysqlalchemy-access创建连接。

我有pyodbcsqlalchemy-access通过pip. 如果我要在 Python 交互式 shell 或 Jupyter Notebook 中运行它,一切正常。但是当我使用 PyInstaller 构建一个可执行文件时,我得到:

我不知道为什么这种情况不断发生。我的脚本只导入sqlalchemy,但我也包含hiddenimports=['sqlalchemy_access', 'pyodbc'].spec文件中。然而,没有任何帮助。

0 投票
1 回答
343 浏览

pandas - MS Access pyodbc Pandas 数据帧 to_sql 抛出无效的精度值

我正在使用 pandas 数据框的 to_sql 函数将记录保存到 MS Access 97 MDB。但我收到以下错误:

我在 Windows 10 工作站上使用 Python 3.8.5 32 位。

我还安装了以下库。

提前致谢!

0 投票
1 回答
207 浏览

python - 如何使用 ORM 从 SqlAlchemy 的多值字段中获取对象列表?

我有来自我的客户的 MS Access DB 文件 (.accdb),需要用 declarative_base 类描述表和列。正如我在表构造函数中看到的那样 - 其中一个列具有整数值,并且与另一个表中的另一列(外键)具有“一对多”关系。但实际上在这个外键中存储的不是单个整数值,而是数字值用分号分隔的字符串。这种技术称为“多值字段”。事实上,这是没有关联表的“多对多”关系。

非常简化的方案:

我尝试使用 declarative_base 父类将类映射到表。但是在没有关联表的情况下找不到如何声明“多对多”关系。现在我有这样的代码。

在请求人期间,我有奇怪的行为:

  • 如果未指定 vacancy_id,我将 Person.vacancies 设为 None。
  • 如果 vacancy_id 指定为单个值(即“1”),则在 Person.vacancies 我得到 Vacancy 类的单个对象。
  • 如果 vacancy_id 指定为多个值(即“1;2;3”),在 Person.vacancies 我也得到无。

当然,我可以请求原始 Person.vacancy_id,用分号分隔,然后请求获取带有 ID 列表的空缺。

但我想知道——SqlAlchemy 是否可以处理“多值字段”?处理此类文件的最佳方式是什么?

更新 目前我做了以下解决方法来自动解析多值列。这应该添加到 Persons 类:

空缺类应具有以下属性:

最后,我们必须为课堂使用准备会话:

0 投票
0 回答
740 浏览

python - NoSuchModuleError:无法加载插件:sqlalchemy.dialects:access.pyodbc

我想将数据框导入访问数据库,但出现错误NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc

0 投票
0 回答
110 浏览

python - 是否有任何不使用 Java 的 mdbtools 替代品?

因此,我尝试使用 Python 和 SqlAlchemy 在 Linux 系统(Ubuntu 20.04 和 CentOs 8)上处理 MsAccess DB 文件。即使使用最简单的查询也无法使用 mdbtools 驱动程序。在我家的 Ubuntu 上,我安装了最新的 sqlalchemy_access、pyodbc、unixodbc。作为驱动程序,我安装了 odbc-mdbtools。

在 /etc/odbcinst.ini 建立正确的连接:

DSN URI 是:

我的数据库模型是:

所以一切正常,并且在我提出第一个请求之前运行没有错误。如果我尝试简单地从基础获取所有文章,我会收到以下错误:

如您所见,SQL 语句是正确的,并且在 DBeaver 中运行没有问题。似乎 mdbtools 驱动程序存在一些问题。因此,我试图找到另一个可以在 Linux 下运行的 MsAccess 驱动程序。按照这个旧答案,mdbtools 只有 2 个替代品(JayDeBeApi 和 Jython)。DBeaver 也使用 UCanAccess 驱动程序。它们都依赖于Java VM,由于一些内部问题,无法在目标系统上使用。没有 Java 的 MsAccess 是否有任何已知的驱动程序替代品?

PS 即使我在数据库和模型中只留下一个 ID 列并运行原始请求,也会出现同样的问题:

PPS 如果我使用 isql 实用程序,也会出现同样的问题。工具 mdb-sql 工作正常 - 显示 UTF-8 字符(DB 有俄语)。

0 投票
1 回答
217 浏览

python - 使用 to_sql 将 pandas 数据框导出到访问表中生成错误

我正在尝试使用sqlalchemy-access库将数据框插入到访问数据库中:

我拥有的代码是:

但是当我运行这段代码时,我收到了这个错误:

当我尝试运行此行时会生成错误:

这段代码有什么问题,我该如何解决?

编辑 1

根据评论和这篇文章,我将代码更改为:

但我仍然收到错误:

编辑 2

复制了这里所说的内容:https ://github.com/gordthompson/sqlalchemy-access/wiki/Getting-Connected#connecting-with-an-odbc-connection-string

所以代码现在看起来像这样:

但我仍然收到此错误:

应该注意的是,我已经在我的系统上安装了 Access。

0 投票
1 回答
116 浏览

python - MS Access 数据库被 Python 锁定

我正在使用 Python 将数据框写入 MS Access 数据库。它可以工作,但我似乎无法关闭连接(即数据库被 Python 锁定)。

这是我的代码:

我尝试在创建引擎行之后添加它:

在将数据帧写入数据库之后:

我没有从这些添加中得到错误,但数据库仍然被锁定。如何关闭连接以解除锁定?