问题标签 [pyodbc]

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 投票
3 回答
2745 浏览

python - pyodbc 是否有执行标量函数

pyodbc 是否具有执行标量函数?

.net 中的 sql 库上的 executescalar 之类的东西?

0 投票
1 回答
935 浏览

unicode - Pyodbc utf-8 绑定参数错误与 FreeTDS 和 unixODBC

FreeTDS 版本 0.82

unixODBC 版本 2.3.0

pyodbc 版本 2.1.8

freetds.conf:

在 odbc.ini 中使用 Servername(出于某种疯狂的原因,这在让 unixODBC 识别 freetds 中的客户端字符集方面有所不同)

我能够正确提取 utf8 数据,并且可以使用字符串内联更新,即:

失败:

如果我添加:

我收到以下错误:

pyodbc.ProgrammingError: ('42000', '[42000] [FreeTDS][SQL Server]传入的表格数据流 (TDS) 协议流不正确。流意外结束。(4002) (SQLExecDirectW)')

关于事情误入歧途的任何想法?

0 投票
1 回答
17584 浏览

python - 使用 pyodbc 连接到 MS Access 2007 (.accdb) 数据库

我在 Win7 x64 上,使用 Python 2.7.1 x64。我正在将我在 VC++ 中创建的应用程序移植到 Python 以用于教育目的。
原始应用程序通过使用以下连接字符串连接到 MS Access 2007 格式 DB 文件没有问题:
OleDbConnection^ conn = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|DB.accdb");
现在,当我尝试使用 pyodbc 和以下连接到 Python 中的同一个 DB 文件(这次放在 C:\ 中)时conenction string:
conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\DB.accdb;")
,无论我是保留 OLEDB 提供程序还是使用此处Provider=MSDASQL;提到的(MS 提到它不适用于 64bit),我都会收到以下错误:

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

什么可能导致这个问题?

添加:我已经更仔细地研究了 pyodbc 文档并尝试过conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c:\\DB.accdb;")- 同样的错误。这真的很奇怪,因为 pyodbc.dataSources() 表明我有这个提供程序。

ADD2:我尝试使用诸如此处的 win32com.client 使用 OLE DB 进行连接 - 没有成功。似乎这是不可能的,没有任何作用。

0 投票
4 回答
6852 浏览

python - python - 使用pyodbc连接到数据库 - 不工作

我正在尝试使用以下连接字符串连接到 Access 2007 数据库。

我收到此错误:

Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=;")

错误:('HY000',“[HY000] [Microsoft][ODBC Microsoft Access Driver]一般错误无法打开注册表项临时(易失)进程0x167c的Ace DSN线程0x1568 DBC 0x1c67a5c

喷射'。(63) (SQLDriverConnectW); [HY000] [Microsoft][ODBC Microsoft Access Driver]一般错误无法打开注册表项临时(易失性)进程0x167c线程0x1568 DBC 0x1c67a5c的Ace DSN

喷射'。(63); [HY000] [Microsoft][ODBC Microsoft Access Driver] 文件名无效。(-1044); [HY000] [Microsoft][ODBC Microsoft Access Driver]一般错误无法打开注册表项临时(易失性)进程0x167c线程0x1568 DBC 0x1c67a5c的Ace DSN

喷射'。(63); [HY000] [Microsoft][ODBC Microsoft Access Driver]一般错误无法打开注册表项临时(易失性)进程0x167c线程0x1568 DBC 0x1c67a5c的Ace DSN

喷射'。(63); [HY000] [Microsoft][ODBC Microsoft Access Driver] 文件名无效。(-1044)")

SO上有另一个这样的问题,但是我没有32/64位兼容性问题。这个问题似乎没有一个好的答案,但希望有人可以帮助我连接到我的数据库,因为我不知道使用 python 查询或将数据写入 Access 2007 的任何其他方法。

谢谢

0 投票
2 回答
671 浏览

python - 如何使用 pyodbc 从 ms 访问数据库中选择最后 5 分钟的数据?

我有以下查询(Windows 7 上的 python pyodbc 访问访问数据库 .mdb):

DateADD似乎不起作用。我收到以下错误:

我已经尝试过单引号、双引号和 n 周围没有引号,但这没有区别。

0 投票
1 回答
2356 浏览

python - 使用 PYODBC 访问 SQL Server 2005

我构建了一个应用程序来使用 wxpython 进行一些数字运算。为了我的目的,我必须从 SQL Server 2005 访问数据。我正在使用 PYODBC,当我询问服务器管理员时,他向我提供了数据库的服务器名称和唯一数据 ID。

我看不到在 PYODBC 中访问具有唯一数据 ID 的数据库的语法,例如:

当您有数据库和表名时。如何使用 server-name 和 Data_ID 访问数据库?

我不知道从哪里开始。

0 投票
1 回答
2204 浏览

python - Python:使用 pyodbc 并替换行字段值

我试图弄清楚是否可以使用pyodbc替换 Microsoft Access(.accdb 或 .mdb)数据库中的记录值。我翻阅了文档并注意到它说“可以替换行值”但我无法使其工作。

更具体地说,我正在尝试从 python 变量中替换行值。我试过了:

  • 将连接自动提交设置为“True”

  • 确保这不是数据类型问题

这是我正在执行 SQL 查询的代码片段,使用 fetchone() 仅获取一条记录(我知道使用此脚本查询仅返回一条记录),然后我正在获取字段的现有值(字段位置整数存储在 z 变量中),然后通过从脚本中创建的现有 python 字典访问它来获取我想要写入该字段的新值。

我已经尝试了所有我认为有点无法让它工作的东西。我只是误解了帮助文档吗?

该脚本成功运行,但新分配的值似乎从未提交。我什至尝试将“print str(record[z])this 放在 record[z] = val 行之后,以查看表中的字段是否具有新值,并且新值会像它一样打印......但是如果我在脚本完成后签入表格,旧值仍在表格字段中。

非常感谢对此的任何见解......我希望这会像在 MS Access 数据库中使用 VBA 一样工作,您可以使用 ADO Recordset 循环遍历表中的记录并将值分配给变量中的字段。

谢谢,汤姆

0 投票
2 回答
4731 浏览

python - 在pyodbc中将表名作为参数传递

我正在尝试将表名pyodbc作为参数传递,以从 ms sql 2005 访问数据。我试图用它替换它,?但它从来没有用过。我很高兴收到有关如何完成此任务的任何建议。

0 投票
1 回答
1276 浏览

python - pyodbc 和 MySQLdb 有什么区别?

我有一些使用 python 2.6 在 win x64 上用 pyodbc 编写的代码,我没有遇到任何问题。使用相同的代码切换到 MySQLdb 我得到错误。

例子。长对象不可迭代......

pyodbc 和 MySQLdb 有什么区别?

编辑

0 投票
1 回答
1095 浏览

python - PyODBC - 游标记录值四舍五入

我正在编写一个 Python 脚本(Windows XP 上的 Python 版本 2.5.1),该脚本涉及连接到 Microsoft Access (.mdb) 数据库以从表中读取值。我在一项记录中得到了一些意想不到的结果,其中感兴趣的精度领域正在四舍五入。

我知道感兴趣的 Access 表字段是 Double 数据类型。但是,导致我在表中发现这个的值是 1107901035.43948。当我读取 Python 代码中的值并将其打印出来时,它显示的是 1107901035.44。

是否有 pyODBC 连接参数或其他必须设置的参数?我在文档中找不到任何内容

这是我的代码的样子(目的是通过识别对我感兴趣的领域具有最大价值的记录来解决不需要的记录):

谢谢,汤姆