2016-12-29 42 views
2

我使用的Ubuntu 14.04freetds的的unixODBC连接到2008的Microsoft SQL Server。我测试了与tsqlisql的连接,并且它工作正常。在使用isql -v如果我有口音(A,E,I,O,U)在我收到以下消息查询:使用freetds的和unixODBC的运行与口音查询(A,E,I,O,U)SQL Server上

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

[ISQL]ERROR: Could not SQLExecute

在安装freetds的和unixODBC数据包我收到一条警告消息说,特殊字符会除非有额外的包裹才能被接受,但我不能接受。为了尝试解决这个问题,我卸载了freetds和unixODBC,重新安装了它们,但没有收到任何警告消息,但在查询中包含重音符时仍然收到相同的错误消息。 PS:这是我提出的第一个问题,如果它含糊不清或者不完整,我很抱歉。

+0

是什么在这里你的关心。我想重新安装所有后开始正常工作,如果是有可能的配置问题的一些依赖。 .. –

+0

重新安装后,在包含查询 –

+0

的ODBC驱动程序中使用它时,我仍然收到相同的错误消息,问题是utf16使用最新版本的ODBC,至少晚于3.5。 https://www.progress.com/tutorials/odbc/unicode –

回答

2

经过很长一段时间,我发现的解决方案非常简单,并与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

+0

未来读者注意事项:为了兼容性,FreeTDS别名TDS版本“8.0”到TDS版本7.1,但警告应避免指定“8.0”。有关详细信息,请参阅[选择TDS协议版本](http://www.freetds.org/userguide/choosingtdsprotocol.htm)中的“关于过期版本”一节。 –

相关问题