我收到一个神秘的 MSAccess 错误,我无法弄清楚是什么原因造成的。
我有以下设置:
Golang / Gin 网络服务器 (Windows) 调用
编译的 python 脚本 (.exe) 使用 COM 调用
MSAccess 宏将数据库查询导出为某种格式。
我还有一些在多层上的原始日志记录,以帮助我在这种奇怪的架构中进行调试。
错误是从 python 记录的:<class 'pywintypes.com_error'>: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, 'Sie haben den vorherigen Vorgang abgebrochen.', 'vbaac10.chm', 5738, -2146826287), None)
大致翻译为
<class 'pywintypes.com_error'>: (-2147352567, 'Unknown error.', (0, None, 'You canceled the previous operation.', 'vbaac10.chm', 5738, -2146826287), None).
奇怪的是,如果我自己运行 python 可执行文件,一切都会按预期工作,并且不会发生错误。但是,如果我从我的 golang 代码(网络服务器/测试)中调用它,它会抛出“您取消了上一个操作”。错误,据我在线阅读,当宏名称或表名称不正确时会发生此错误。
我现在唯一的假设是,当我的golang执行它时,我自己执行它是因为不同的用户权限?
这是用于调用宏的相关python代码:
import pythoncom
import win32com.client
import sys
import logger
log = logger.Logger("data-sync.txt")
def export_db(db_path):
try:
log.info(f"Exporting database under: {db_path}")
log.info("- Connecting to Access COM interface.")
oAccess = win32com.client.Dispatch("Access.Application")
log.info("- Opening provided database.")
oAccess.OpenCurrentDatabase(db_path, False)
log.info("- Running Macro \"ExportDb\"")
oAccess.DoCmd.RunMacro("ExportDb")
log.info("- Running complete, closing database")
oAccess.CloseCurrentDatabase()
except Exception as err:
log.error(type(err), err)
pass
pass
我已经三重检查了路径和被调用的宏名称,欢迎任何其他想法。
芜湖不芜
隔江千里
随时随地看视频慕课网APP
相关分类