在 SQL 服务器上使用 freetds 和 unixODBC 运行 查询带有重音符号 (á,é,í,ó,ú)
Using freetds and unixODBC to run queries with accents (á,é,í,ó,ú) on SQL Server
我正在使用 Ubuntu 14.04 与 freetds 和 unixODBC 连接2008 Microsoft SQL 服务器。我用 tsql
和 isql
测试了连接,它工作正常。在使用 isql -v
时,如果我在查询中包含重音符号 (á,é,í,ó,ú),我会收到以下响应:
[37000][unixODBC][FreeTDS][SQL Server]Incorrect syntax near '?'.
[ISQL]ERROR: Could not SQLExecute
在安装 freetds 和 unixODBC 包时,我收到一条警告消息,说除非有额外的包,否则不接受特殊字符,但我不知道是哪一个。为了尝试解决这个问题,我卸载了 freetds 和 unixODBC,重新安装了它们,但没有收到任何警告消息,但在查询中包含重音符号时,我仍然收到相同的错误消息。
PS:这是我提出的第一个问题,如果它含糊或不完整,请见谅。
尝试了很长时间后,我找到的解决方案非常简单,并且可以使用 tsql
和 isql
。在 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
我正在使用 Ubuntu 14.04 与 freetds 和 unixODBC 连接2008 Microsoft SQL 服务器。我用 tsql
和 isql
测试了连接,它工作正常。在使用 isql -v
时,如果我在查询中包含重音符号 (á,é,í,ó,ú),我会收到以下响应:
[37000][unixODBC][FreeTDS][SQL Server]Incorrect syntax near '?'.
[ISQL]ERROR: Could not SQLExecute
在安装 freetds 和 unixODBC 包时,我收到一条警告消息,说除非有额外的包,否则不接受特殊字符,但我不知道是哪一个。为了尝试解决这个问题,我卸载了 freetds 和 unixODBC,重新安装了它们,但没有收到任何警告消息,但在查询中包含重音符号时,我仍然收到相同的错误消息。
PS:这是我提出的第一个问题,如果它含糊或不完整,请见谅。
尝试了很长时间后,我找到的解决方案非常简单,并且可以使用 tsql
和 isql
。在 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