问题标签 [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 投票
2 回答
2064 浏览

python - 使用 python 从 MSSQL 读取 uniqueidentifier 字段

我使用 pyodbc 访问我的 MSSQL 数据库。

从 MSSQL 读取 uniqueidentifier 字段时,在我的 MacOS 中,我可以打印 udid 字段的正确值(例如 4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在 Linux CentOS 上运行相同的代码时,我只看到非常奇怪的字符串比如“???E??6??????c”,值的类型是“buffer”,而不是MacOS中的“str”。

你能解释一下为什么会这样,我怎样才能在 linux 上获得正确的 uidi 值?谢谢

0 投票
1 回答
2583 浏览

python - SQLAlchemy 滥用导致内存泄漏?

我的程序每隔几秒钟就会消耗一个兆。我读到python在垃圾收集中看不到游标,所以我觉得我可能在使用时做错了pydbcsqlalchemy并且可能没有在某处关闭某些东西?

我是否应该将元数据块或其中的一部分移动到插入块并关闭每个插入的连接?

编辑:
问:它是否都稳定了? 在此处输入图像描述

A:只有当你计算 Linux 吹走进程时:-) (图表确实从内存使用中排除了缓冲区/缓存)

0 投票
3 回答
21109 浏览

python - 我可以在与 pyodbc 和 MS SQL Server 的一个连接上使用多个游标吗?

我在 python 2.6 上使用 pyodbc 连接到 Microsoft SQL Server 2005。我打开一个连接,创建几个游标:

然后在第一个游标上运行查询。

现在我在第二个游标上运行查询:

...我收到一个错误:“连接正忙于另一个 hstmt 的结果。”

在我做一个c1.fetchall()c1.close()之后我可以使用c2。

我的问题是:为什么我什至可以在一个连接上创建多个游标,如果我一次只允许使用一个,并且始终可以重复使用同一个游标?而且,如果我想对另一个查询结果的每一行运行一个查询,如下所示:

我真的必须创建到同一个数据库的多个连接吗?

0 投票
1 回答
2255 浏览

python - 使用 Python 从 MS SQL Server 读取 zlib/gzip 压缩数据

我正在使用 Python 2.6 从 SQL Server 读取数据。我被卡住了,因为我的数据库中的一列是 varbinary。我用的是pyodbc,Python程序中的数据类型是“buffer”。

现在,数据库中的此列存储 gzip 压缩文本。如果可以访问“缓冲区”数据类型,我无法弄清楚如何从 Python 中解压缩它。

请问有什么帮助/指点吗?

这就是我正在做的

提前致谢!

0 投票
2 回答
1715 浏览

python - 雪豹上的 PyODBC - 安装错误

有没有人在雪豹上成功安装 PyODBC?

我收到以下错误。(我也在这里提交了一个错误)任何想法如何解决这个问题并安装它?

这是我得到的输出:

版本:PyODBC 2.1.8、Mac 10.6.7 和 Python 2.6.1

0 投票
1 回答
1618 浏览

pyodbc - pyodbc 的 cx_freeze 错误

如果你有一个简单的程序名 pyodbcTest.py

然后使用 cx_freeze 编译它

然后运行该程序会引发以下错误。

有任何想法吗?

0 投票
6 回答
18236 浏览

sql-server - pyodbc - 非常慢的批量插入速度

有了这张表:

以下代码需要 40 秒才能运行:

与 psycopg2 等效的代码只需要 3 秒。我不认为 mssql 比 postgresql 慢得多。关于在使用 pyodbc 时如何提高批量插入速度的任何想法?

编辑:在 ghoerz 的发现之后添加一些注释

在pyodbc中,流程executemany为:

  • 准备声明
  • 循环每组参数
    • 绑定参数集
    • 执行

在ceODBC中,流程executemany为:

  • 准备声明
  • 绑定所有参数
  • 执行
0 投票
1 回答
1801 浏览

python - python使用pyodbc连接到Oracle有时会杀死python解释器

定期使用 pyodbc 创建到 oracle 数据库的连接时,它会杀死解释器。

假设有 1/5 的时间这只会让我从 Python 提示符 (>>>) 下降到我的 dos 提示符 (C:)

关于为什么会发生这种情况或如何解决它的任何想法?

0 投票
1 回答
2160 浏览

python - pymysql vs. pyodbc - pymysql 是 sloooooooooooooow

我一直在尝试让使用 MySQL 的简单数据分析程序正常工作时遇到问题。

在我的 Windows 7 计算机上,我使用 pyodbc 并且程序运行良好,使用 pyodbc 连接到 MySQL。在雪豹上,无法正确安装 pyodbc,所以我改用 pymysql ......

在终于让 pymysql 工作之后,它运行起来超级慢......

刚刚做了一个测试——通过 cProfile 在 Mac OS Snow Leopard 上运行我的程序,得到:

在 103.196 CPU 秒内进行 26849449 次函数调用(26844794 次原始调用)

...(总时间超过几秒的唯一方法是recv)

...

在带有 pyodbc 的 Windows 7 虚拟机上运行相同的程序(连接到从主机运行的相同 MySQL 数据库):

执行 Muncher 作为主程序。ncalls tottime percall cumtime percall filename:lineno(function) 512873 个函数调用(508218 个原始调用)在 6.849 CPU 秒内

有谁知道这可能是什么原因造成的?看起来大部分时间都花在了 _socket.socket 的“recv”方法上,根据谷歌的说法,这是接收数据的东西。这种方法是坏的还是什么?看起来很荒谬,它需要将近 15 倍的时间。

我想一个更好的问题可能是......在 Mac OS 上连接 MySQL 的最佳方式是什么?到目前为止,我已经尝试过 pyodbc 和 MySQLdb,但没有成功安装它们。

0 投票
2 回答
7076 浏览

python - pyodbc 如何确定编码?

到目前为止,我正在与 Python(和 Twisted)一起使用 Sybase SQL Anywhere 12 数周,我什至让我的东西正常工作。

只剩下一个烦恼:如果我在 CentOS 5 上使用自定义 Python 2.7.1(这是部署平台)运行我的脚本,我得到的结果是UTF-8

如果我在我的 Ubuntu 机器(Natty Narwhal)上运行它,我会在latin1中得到它们。

不用说,我更愿意以 Unicode 格式获取我的所有数据,但这不是这个问题的重点。:)

两者都是 64 位的盒子,都有自定义的 Python 2.7.1。使用 UCS4 和自定义构建的 unixODBC 2.3.0。

我在这里不知所措。我找不到任何文档。是什么让 pyodbc 或 unixODBC 在这两个盒子上表现不同?

确凿的事实:

  • 蟒蛇:2.7.1
  • 数据库:SQL 无处不在 12
  • unixODBC:2.3.0(2.2.14 的行为相同),使用相同的标志自编译
  • ODBC 驱动程序:来自 Sybase。
  • CentOS 5 给了我 UTF-8,Ubuntu Natty Narwhal 给了我 latin1。

我的 odbc.ini 看起来像这样:

我只使用 DNS='sybase' 进行连接。

蒂亚!