在 SQL 服务器上使用 freetds 和 unixODBC 运行 查询带有重音符号 (á,é,í,ó,ú)

Using freetds and unixODBC to run queries with accents (á,é,í,ó,ú) on SQL Server

我正在使用 Ubuntu 14.04freetdsunixODBC 连接2008 Microsoft SQL 服务器。我用 tsqlisql 测试了连接,它工作正常。在使用 isql -v 时,如果我在查询中包含重音符号 (á,é,í,ó,ú),我会收到以下响应:

[37000][unixODBC][FreeTDS][SQL Server]Incorrect syntax near '?'.

[ISQL]ERROR: Could not SQLExecute

在安装 freetds 和 unixODBC 包时,我收到一条警告消息,说除非有额外的包,否则不接受特殊字符,但我不知道是哪一个。为了尝试解决这个问题,我卸载了 freetds 和 unixODBC,重新安装了它们,但没有收到任何警告消息,但在查询中包含重音符号时,我仍然收到相同的错误消息。

PS:这是我提出的第一个问题,如果它含糊或不完整,请见谅。

尝试了很长时间后,我找到的解决方案非常简单,并且可以使用 tsqlisql。在 unixODBC 的数据源文件上,我需要设置 TDS_Version=8.0.

之前的文件:

[MSSQL]

Driver = FreeTDS

Server = XXX.XXX.XXX.XXX

Port = XXXX

Database = name

新文件:

[MSSQL]

Driver = FreeTDS

Server = XXX.XXX.XXX.XXX

Port = XXXX

TDS_Version = 8.0

Database = name