2016-12-29 83 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)中的「關於過期版本」一節。 –

相關問題