【问题标题】:Create Windows DSN using python3使用 python3 创建 Windows DSN
【发布时间】:2016-07-05 08:38:16
【问题描述】:

是否可以使用python 3在windows中创建ODBC数据源?

以下语句在 python2 上运行成功,但在 python3 上运行不成功,为什么? ODBCCP32 仅在 py2 中可用?

ctypes.windll.ODBCCP32.SQLConfigDataSource(0, 4, "Microsoft Access Driver (*.mdb)", 'Uid="Admin"\x00DESCRIPTION="pyscript"\x00DSN="PYTEST"\x00pwd=""\x00DBQ="C:\\pytest.mdb"')

【问题讨论】:

  • 有什么错误,如果有的话?
  • 在python3上它返回0。起初我以为是因为我已经安装了64位python并试图创建64位ms访问数据源,但是我重新安装了32位python 3并且数据源仍然可以'不被创建。

标签: python database windows odbc


【解决方案1】:

它不起作用,因为默认情况下,python3 中的所有字符串都是 unicode 字符串。

所以我不得不将它转换为“字节”对象,就像这样: ctypes.windll.ODBCCP32.SQLConfigDataSource(0, 4, bytes('Microsoft Access Driver (*.mdb)', 'iso-8859-1'), bytes('Uid=Admin\x00DESCRIPTION=pyscript\x00DSN=PYTEST\x00pwd=\x00DBQ=C:\\pytest.mdb', 'iso-8859-1'))

【讨论】:

  • 我似乎无法找到有关此功能的文档。有什么方法可以提供参数的细分?到目前为止,我有SQLConfigDataSource( ?? int, ?? int, driver bytes, parameters bytes)。我想问题是,ints 是什么意思?
猜你喜欢
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 2019-09-04
  • 2013-03-13
相关资源
最近更新 更多