我正在使用 Ubuntu 14.04 与 freetds 和 unixODBC 连接到 2008 Microsoft SQL Server 。我测试了与tsql
和isql
的连接,但它运行正常。使用isql -v
时,如果我在查询中包含重音符号(á,é,í,ó,ú),我会收到以下回复:
[37000] [unixODBC] [FreeTDS] [SQL Server]'?'附近的语法不正确。
[ISQL]错误:无法执行SQLExecute
在安装freetds和unixODBC软件包时,我收到一条警告消息,说除非有额外的软件包,否则不会接受特殊字符,但我不知道它是哪一个。为了尝试解决这个问题,我卸载了freetds和unixODBC,重新安装它们并没有收到任何警告消息,但在查询中包含重音时仍然收到相同的错误消息。
PS:这是我提出的第一个问题,如果它含糊或不完整就很抱歉。
答案 0 :(得分:2)
经过一段时间的尝试,我发现解决方案非常简单,并与tsql
和isql
一起使用。在unixODBC的数据源文件中,我需要设置TDS_Version=8.0
。
之前的文件:
[MSSQL]
Driver = FreeTDS
服务器= XXX.XXX.XXX.XXX
Port = XXXX
数据库=名称
新文件:
[MSSQL]
Driver = FreeTDS
服务器= XXX.XXX.XXX.XXX
Port = XXXX
TDS_Version = 8.0
数据库=名称