从SQL Server中使用PYODBC和FreeTDS检索记录

2024-09-27 23:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,可以连接到本地SQL服务器(我相信是2012年?)并运行“SELECT*from…”查询。运行脚本时,我收到一个错误消息:

File "/home/mdrouin/dev/redbus/wyndham.py", line 643, in connect

cursor.execute("SELECT * from [RentalDB].[dbo].[Clients]")

pyodbc.ProgrammingError: ('42000', '[42000] [FreeTDS][SQL Server]Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier. (4004) (SQLExecDirectW)')

在阅读了其他帖子之后,我尝试了另一个帖子中提到的建议,在我的脚本中添加了以下内容:

^{pr2}$

但是,当我这样做时,我得到的是unicode转义字符串(我想这就是它们的名称…)而不是数据。以下是从表中打印行时的一个示例:

(u'\U00320035\U00380033\U00360033\U00300030\U00300030\U00300030\U00320031\U00320039\U00350039', u'\U00640041\U006d0061\U00520020\U004d0020\U00740061\U00690074\U0067006e\U0079006c\U00280020\U00590057\U0032004e\U00300031', u'\U00640061\U006d0061\U00390073\U006d006d', u'\U006f006a\U006e0068\U00650064\U00720065\U00390065\U00330034', u'\U00330032\U0031002e\U002e0039\U00310035\U0031002e\U00350031')

我不明白的是,我在一个虚拟机上运行这个虚拟机,它的设置与另一个虚拟机完全相同,而其中一个虚拟机运行良好,而另一个虚拟机则没有这两个问题。我检查了odbc.ini文件以及odbcinst.ini文件两台计算机上的文件,它们完全相同,所以我不知道是什么导致了这些问题。两个vm都运行Debian 7。在


Tags: or文件infrom服务器脚本sqldata
1条回答
网友
1楼 · 发布于 2024-09-27 23:26:58

别担心。。。我是弱智。当我在虚拟机上用Python设置VirtualEnv时,我意外地使用了python2.6而不是python2.7,后者只允许安装pyodbc2.x而不是pyodbc3.x。PYODBC的旧版本导致了问题。在

相关问题 更多 >

    热门问题