使用Pyodbc + UnixODBC + FreeTDS设置连接参数

2 投票
1 回答
3097 浏览
提问于 2025-04-16 02:22

我这边用的是Pyodbc、UnixODBC和FreeTDS的组合,但在这个过程中,有些选项被设置了,我不知道是在哪里设置的。根据SQL Server Management Studio的反馈,我的程序在打开连接时发送了一些设置:

set quoted_identifier off
set ansi_padding off
set ansi_nulls off
...

但是我需要一组不同的设置:

set quoted_identifier on
set ansi_padding on
set ansi_nulls on
...

有没有办法改变这些设置?如果我现在的配置不能做到,有没有其他的Python库可以让我更改这些设置(最好是使用Python数据库API)?

我不能在数据库里更改设置,因为我还有其他项目在用我现在的设置。

解决方案:

Mark的回答是对的,但我在FreeTDS/UnixODBC上没法让它工作。不过,把这些信息添加到我的odbc.ini文件里就完美解决了这个问题:

[servername]
... other options ..
AnsiNPW = YES
QuotedID = YES

1 个回答

3

根据MSDN的说明,你应该可以在连接字符串中设置这些内容:

cnxn = pyodbc.connect("DSN=someDSN;UID=someUser;PWD=somePass;QuotedID=Yes;AnsiNPW=Yes")

撰写回答