2016-12-29 10 views
2

に私は2008のMicrosoft SQL Serverに接続するためにFreeTDSのunixODBCののUbuntu 14.04を使用しています。私はtsqlisqlとの接続をテストし、正しく動作しました。私はアクセントを含む場合isql -vを使用している間(A、E、I、U、O)クエリで私は、次の応答受信:FreeTDSのと、私は特殊文字があろうと言って、警告メッセージを受信unixODBCのパッケージをインストール中アクセントでクエリを実行するためにFreeTDSとunixODBCの使用(A、E、I、U、O)SQL Serverの

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

[ISQL]ERROR: Could not SQLExecute

を余分なパッケージがなければ受け入れられませんが、私はそれがどれか一つではありません。この問題を解決するためにfreetdsとunixODBCをアンインストールして再インストールしましたが、警告メッセージは表示されませんでしたが、クエリにアクセントを入れても同じエラーメッセージが表示されます。

PS:これはあいまいで不完全な場合はごめんなさい。

+0

ここにあなたの関心事である何..私はすべてがそう構成の問題のいくつかの依存関係ができれば正常に動作し始めた再インストールした後だと思います。 .. –

+0

再インストール後、私は依然としてクエリにアクセントを含めるときに同じエラーメッセージを受け取ります。 –

+0

あなたが使用しているODBCドライバは、少なくとも最新バージョンのODBCよりutf16の方が最新バージョンのODBCを使用しています。 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)の「古いバージョンについて」を参照してください。 –

関連する問題