问题标签 [pymssql]

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 投票
4 回答
39595 浏览

sql-server - 无法使用 pymssql 连接到 SQL Server 数据库,但可以使用底层 freetds tsql 连接

我不知道为什么会收到此错误并且找不到任何解决方案。我可以使用 freetds tsql 连接到 SQL Server 数据库,但是在使用pymssql.connect.

具体错误是:

pymssql.OperationalError: (18456, "Login failed for user 'xxx'.DB-Lib 错误消息 18456, 严重性 14:\n一般 SQL Server 错误: 检查来自 SQL Server 的消息\nDB-Lib 错误消息 20002, 严重性 9:\ n自适应服务器连接失败\n")

我将 freetds 的配置设置为:

跑步:

返回:

这允许我查询数据库。

但是,运行:

引发上述错误。

我正在使用 Linux CentOS、python 2.6.6、freetds 0.92 dev(我尝试过使用 tdsver=7.0 编译的其他版本)。

freetds 日志是:

我完全不知道为什么这不起作用。任何帮助将非常感激。

0 投票
3 回答
938 浏览

python - 通过蛋黄或点子看到的包裹

我需要一些帮助来了解 pip 和 yolk 的工作原理

我跑了pip install pymssql,它安装了 pymssql 版本2.0.0b1-dev-20111019,但后来决定我想恢复到旧版本。

我跑去yolk -V pymssql检查我有哪些可用的版本,但它只返回 pymssql 1.0.2. 我安装的版本不应该也出现吗?

通过网站搜索 pypi 发现 1.0.2 是唯一可用的版本。这是否意味着 pip 正在使用 pypi 以外的资源?

0 投票
0 回答
1106 浏览

sql-server - 无法在 Windows 上使用 PyMSSQL 连接到 SQL Server -“来自服务器的意外 EOF”

我一直在尝试使用 Python 2.7 中的 PyMSSQL 版本 pymssql-2.0.0b1.win-amd64-py2.7 从 Windows 7 64 位操作系统连接到 MS SQL 2008 服务器。

但是,当我为服务器、用户 ID、密码和数据库输入正确的登录凭据时,我收到以下错误:

err_handler(dbproc = 025D30D8, severity = 9, dberr = 20017, oserr = 0, dberrstr = '来自服务器的意外 EOF'

我看到其他人在使用 FreeTDS for Linux 机器时遇到此问题,并且设置了不正确的 TDS 版本。由于我使用的是 Windows 操作系统,因此我的印象是不需要使用 FreeTDS 或指定 TDS 版本。这是真的?我还需要在某处指定 TDS 版本吗?

请提供任何建议或帮助。谢谢。

0 投票
4 回答
449 浏览

python - 在 Python (pymssql) 中跳过没有类型检查的键

我需要访问所有非整数键,dict如下所示:

我目前正在这样做:

我的问题:

  1. 有没有办法在没有类型检查的情况下做到这一点?
  2. tmp_dict是来自使用属性的查询pymssqlas_dict=True并且由于某种原因,它返回所有列名以及预期的数据,但还包括由整数索引的相同数据。如何将查询结果作为仅包含列值和数据的字典?

谢谢你的帮助!

PS - 尽管我的问题可能通过回答2得到解决,但我很好奇如何在没有类型检查的情况下完成此操作。主要针对那些说“永远不要进行类型检查”的人。

0 投票
3 回答
3743 浏览

python - 带有 MS SQL 的 Python - 截断的输出

我尝试从 Linux 框Python 2.7Ubuntu 11.04使用 python 连接到 MSSQL DB 。我收到的输出被截断为 500 个字符。请参阅下面的脚本和配置。怎么可能解决?我想在 ODBC 驱动程序中或附近的问题。

代码(pyodbc、pymssql):

我对 MS SQL DB 没有写入权限,它实际上是不属于我们系统的远程服务器。

SQL:

问题出在ShReq.ALM_SharedText场上。它被截断为 255 个字符,但使用像convert(text,ShReq.ALM_SharedText) AS TEXTCAST(ShReq.ALM_SharedText AS TEXT)我这样的转换将截断增加到 500 个字符。但是,有些字段的文本长度超过 500 个字符,它们会被截断。

ODBC 设置:

/etc/odbc.ini

/etc/odbcinst.ini

/etc/freetds/freetds.conf

任何想法如何解决?

0 投票
1 回答
1098 浏览

python - pymssql callproc unicode - 返回错误

我需要通过 callproc 调用“sp_executesql”的帮助(我需要它作为 RPC)。这是我的代码:

我收到此错误:

运行其他存储过程很顺利。将字符串作为 unicode (u'Select...') 运行会出现此错误:

你知道如何克服这个吗?

SQL Server 是 Microsoft SQL Server 2012 - 11.0.2100.60 (X64) Feb 10 2012 19:39:15 版权所有 (c) Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)

非常感谢

0 投票
2 回答
909 浏览

sql - 来自 pymssql 的 SQL 中的事务自行回滚

我们有一个开发人员使用使用 freetds 的 pymssql 连接到 SQL Server。他的脚本根据 MySQL 数据库中的值动态生成 sql 插入查询。

当您在 SQL Profiler 中查看这些语句时,它们会被正确解析并在其中包含正确的开始事务/提交。出现“将数据库上下文更改为...”的唯一“用户错误消息”,每当您在 SQL 中发出 USE 时就会出现。批处理完成后,会出现事务日志事件“回滚”,并且删除所有插入的记录。

我们没有使用 XACT_ABORT_OFF 因为我没有看到“将数据库上下文更改为”受到它的影响。

有没有人对此有任何想法或经验?谢谢!

[编辑]:从分析器中复制的代码在 SSMS 中使用相同的用户可以正常工作,并且没有触发器。

[第二次编辑]:在 SQL 探查器中,我在 eventsubtype 下看到一个带有 'rollback' 的 'TransactionLog' 条目,但是没有 TM:Rollback Tran

0 投票
1 回答
2843 浏览

python - 将空值传递给 Python 中的存储过程

我正在使用 Python 调用我的 MSSQL 数据库中的存储过程,但它不喜欢传递的“无”值。这可能是 pymssql 中的错误吗?或者有什么方法可以确保将“None”转换为 NULL?我需要能够传递 NULL。

示例代码:

0 投票
1 回答
99 浏览

python - 将记录和映射字符串插入字段?

我是 python 和 SQL 的新手,但享受学习曲线。

我正在使用pymssql并且我认为这将是一个相当基本的问题。

在一个函数中,我需要在表中插入一条记录,并将我之前计算的一些变量传递给 INSERT 语句。

目前我的代码如下所示:

var 1 = "Hello"
var 2 = "Bye"
var 3 = "12/12/12
cursor.execute("INSERT INTO table (field1, field2, field3) VALUES(%s, %s, %s)", var1, var2, var3)

这将返回一个错误:

execute() 最多接受 2 个位置参数(给定 4 个)

我做错了什么,记住我正在学习,这样做会更优雅吗?

0 投票
1 回答
3461 浏览

python - 在 SQL Server 中插入点?

全新的 python 并喜欢它,我想这可能是一个简单的。
我目前在pymssql的帮助下通过 Python 脚本将点插入 SQL Server 2008 。

这一切都很好。我还需要将这些坐标插入到GEOGRAPHY 类型字段(称为 geog)中。

这会引发以下异常:

输入知名文本 (WKT) 中的标签 geography::STGeomFro 无效。有效标签为 POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION、CIRCULARSTRING、COMPOUNDCURVE、CURVEPOLYGON 和 FULLGLOBE(仅限地理数据类型)。

从 SSMS 我可以在表上运行插入语句来插入一个点。

如果您需要更多详细信息,请在评论中告诉我。

我在 pastebin 上的一些工作。