问题标签 [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 回答
4891 浏览

python - 使用 SQL 或其他变通方法访问存储过程的第二个结果集?Python\pyodbc

我正在使用 python\pyodbc 并希望访问存储过程的第二个结果集。据我所知,pyodbc 不支持多个结果集。此外,我无法修改存储过程。是否有任何选项可以使用 SQL 或其他解决方法访问第二个结果集?也许创建第二个存储过程,它只返回第一个结果集的第二个结果集?

0 投票
5 回答
22871 浏览

python - 使用带有“Windows 凭据”的 Linux 上的 python 连接到 MS SQL Server

有没有办法使用 Windows 域凭据在 Linux 上使用 python 连接到 MS SQL Server 数据库?

我可以使用 Windows Credentials 从我的 Windows 机器上完美连接,但尝试从带有 pyodbs + freetds + unixodbc 的 linux python 上做同样的事情

导致此错误:

我确定密码写对了,但我尝试了许多不同的用户名组合:

甚至

无济于事。有任何想法吗?

0 投票
3 回答
3732 浏览

python - 是否有任何可用的 pywin32 odbc 连接器文档?

网络上有什么好的 pywin32 odbc 连接器文档和教程?

0 投票
6 回答
31308 浏览

python - windows上从python连接odbc的常用方法?

我应该使用什么库从 Windows 上的 python 连接到 odbc?就 odbc 而言,pywin32 有什么好的替代方案吗?

我正在寻找有据可查、健壮、积极维护等pyodbc看起来不错的东西——还有其他的吗?

0 投票
6 回答
8538 浏览

python - PyODBC 和 Microsoft Access:简单查询的结果不一致

我通过 Microsoft Jet 使用 pyodbc 从 Python 程序访问 Microsoft Access 2003 数据库中的数据。

Microsoft Access 数据库来自第三方;我只是在阅读数据。

我通常在提取我需要的数据方面取得了成功,但我最近注意到了一些差异。

我把它归结为一个简单的查询,形式如下:

我已经混淆了字段名称和值,但实际上,没有比这更简单的了!当我在 Access 中运行查询时,它返回一条记录。

然后我在 pyodbc 上运行它,代码如下所示:

(同样,没有比这更微不足道的了!)

queryString 的值是从 Access 中的工作查询中剪切和粘贴的,但它不返回任何记录。我希望它会返回相同的记录。

当我更改查询以搜索 field2 的不同值时,宾果游戏可以正常工作。它拒绝的只是一些价值观。

所以,请帮帮我。我接下来应该在哪里寻找来解释这种差异?如果我不能相信琐碎查询的结果,我就没有机会参与这个项目!

更新:它变得更加简单!以下查询给出了不同的数字...

从表中选择计数(*)

我考虑它是否与某些形式的缓存和/或另一个偶尔填充数据的应用程序的不正确事务管理有关。

0 投票
7 回答
47870 浏览

python - 在生产中使用 Sql Server 和 Django

有人最近有使用 SQL Server 数据库后端部署 Django 应用程序的经验吗?我们的工作场所在 SQL Server 上投入了大量资金,如果没有足够开发的后端,我们将不支持 Django。

我知道 mssql.django-pyodbc 和 django-mssql 作为非官方支持的后端。这两个项目似乎只有一个人贡献,尽管贡献似乎有些规律,这有点令人担忧。

是否有任何其他支持良好的 SQL Server 后端?我在这里提到的两个对于生产来说“足够好”了吗?你有什么经验?

0 投票
4 回答
17059 浏览

python - 在 linux 上使用 pyodbc 在 nvarchar mssql 字段中插入 unicode 或 utf-8 字符

我正在使用Ubuntu 9.04

我已经安装了以下软件包版本:

我是这样配置/etc/unixodbc.ini的:

我是这样配置/etc/freetds/freetds.conf的:

31e2fae4adbf1b2af1726e5668a3414cf46b454f我已从中获取pyodbc 修订版并使用“ ”http://github.com/mkleehammer/pyodbc安装它python setup.py install

我的本地网络上有一台装有Microsoft SQL Server 2000的 Windows 机器,启动并监听本地 IP 地址 10.32.42.69。我有一个名为“Common”的空数据库。我有用户“sa”,密码为“secret”,拥有完全权限。

我正在使用以下 python 代码来设置连接:

到目前为止一切正常。我在服务器上使用了 SQLServer 的企业管理器,新表就在那里。现在我想在表上插入一些数据。

那失败了!!这是我得到的错误:

由于我的客户端配置为使用 UTF-8,我想我可以通过将数据编码为 UTF-8 来解决。那行得通,但后来我得到了奇怪的数据:

这没有错误,但返回的数据与发送的数据不同!我得到:

也就是说,pyodbc 不会直接接受 unicode 对象,但它会将 unicode 对象返回给我!并且编码被混淆了!

现在的问题:

我想要代码在 NVARCHAR 和/或 NTEXT 字段中插入 unicode 数据。当我查询回来时,我想要我插入回来的相同数据。

这可以通过以不同的方式配置系统,或者通过使用能够在插入或检索时正确地将数据转换为/从 unicode 的包装函数

这要求不高,是吗?

0 投票
3 回答
7459 浏览

python - 在 ubuntu 上使用 pyodbc 在 SQL Server 上插入图像字段

我正在使用Ubuntu 9.04

我已经安装了以下软件包版本:

我是这样配置/etc/unixodbc.ini的:

我是这样配置/etc/freetds/freetds.conf的:

31e2fae4adbf1b2af1726e5668a3414cf46b454f我已从中获取pyodbc 修订版并使用“ ”http://github.com/mkleehammer/pyodbc安装它python setup.py install

我的本地网络上有一台装有Microsoft SQL Server 2000的 Windows 机器,启动并监听本地 IP 地址 10.32.42.69。我有一个名为“Common”的空数据库。我有用户“sa”,密码为“secret”,拥有完全权限。

我正在使用以下 python 代码来设置连接:

到目前为止一切正常。我在服务器上使用了 SQLServer 的企业管理器,新表就在那里。现在我想在表上插入一些数据。

现在在我原来的问题上,我在使用时遇到cur.execute(sql, (data,))了问题,但现在我已经编辑了这个问题,因为按照下面 Vinay Sajip 的回答(谢谢),我将其更改为:

并且插入工作正常。我可以使用以下测试代码确认插入数据的大小:

完美通过!

现在问题在于检索数据。

我正在尝试常见的方法:

然而那失败了!!

我把上面的所有代码都放在了一个文件中以便于测试任何想要帮助的人。

现在的问题:

我希望 python 代码将图像文件插入 mssql。我想查询图像并将其显示给用户。

我不关心 mssql 中的列类型。我IMAGE在示例中使用“”列类型,但任何二进制/blob 类型都可以,只要我得到未损坏的插入文件的二进制数据。Vinay Sajip 在下面说,这是 SQL SERVER 2000 中的首选数据类型。

现在正在插入数据而没有错误,但是当我检索数据时,只返回 4k。(数据在 4096 被截断)。

我怎样才能使它工作?


编辑:Vinay Sajip 下面的回答给了我在现场使用 pyodbc.Binary 的提示。我已经相应地更新了这个问题。谢谢维奈萨吉普!

Alex Martelli 的评论让我想到了使用DATALENGTHMS SQL 函数来测试数据是否已完全加载到列上。谢谢亚历克斯马泰利!

0 投票
2 回答
26111 浏览

python - 在 Python 中,使用 pyodbc,你如何执行事务?

我有一个用户名,我必须在许多(最多 25 个)表中进行更改。(是的,我知道。)原子事务似乎是处理这类事情的方法。但是,我不知道如何使用 pyodbc 执行此操作。我以前看过各种关于原子事务的教程,但从未使用过它们。

设置:Windows 平台、Python 2.6、pyodbc、Microsoft SQL 2005。我将 pyodbc 用于单个 SQL 语句,但没有复合语句或事务。

SQL 的最佳实践似乎表明创建存储过程非常适合这一点。我对存储过程的恐惧如下,按照重要性增加的顺序排列:1)我从未编写过存储过程。2)我听说 pyodbc 目前还没有从存储过程返回结果。3) 这绝对不是我的数据库。它是供应商提供的、供应商更新的等等。

那么,最好的方法是什么?

0 投票
4 回答
7344 浏览

python - 如何在 python 中转义哈希 (#) 字符?

我正在使用 pyodbc 查询 AS400(不幸的是),并且某些列名中有散列!这是一个小例子:

我明显收到这样的错误:

有什么办法可以逃脱吗?似乎怀疑在 var 名称中是否允许使用哈希。我今天刚拿起python,如果答案是常识,请见谅。

谢谢,皮特