私は、Unixシステム上のPDO経由でMSSQLサーバからデータを取り出しています。私はライセンスを購入する前にFreeTDSを試しています。FreeTDS MSSQL nvarchar(max)issue
nvarchar(MAX)に設定されているSQLサーバーからデータを取り出そうとしていますが、これは予想されるものではなく、非常に奇妙な文字です。データベースの列の種類を編集できません。
たとえば、nvarchar(max)フィールドの値は「admin」に設定されていますが、「>÷Ý」として出力されます。他のすべての列タイプは正常に動作しているようです。 EasySoftのドライバでこの問題を解決するには
、私は上に「VarMaxAsVarchar」を設定する必要がありました(http://www.easysoft.com/products/data_access/odbc-sql-server-driver/manual/configuration.html)
FreeTDSの中から同様の設定はありますか?
参考として、TDSバージョンを7.4に設定して、Microsoft SQL Server 2012データベースに接続しています。ここで
は、設定ファイルである:
/etc/freetds.conf:
[global]
# TDS protocol version
tds version = 7.4
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
[mssql_freetds]
host = xxxxx
port = xxxx
tds version = 7.4
/etc/odbc.ini
[mssql_freetds]
Driver=FreeTDS
Description=MSSQL FreeTDS
Server=xxxxx
Port=xxxx
TDS_Version = 7.4
任意の考え?
すべての文字列リソースの前に見つからなかった「N」リテラルを確認してください... – Devart
FreeTDSのどのバージョンをお使いですか? v1.0はリリースされたばかりで、 'TDS_Version'バージョン7.4をサポートする唯一のバージョンです:https://github.com/FreeTDS/freetds/blob/master/NEWSそれ以外の場合、バージョン7.1にフォールバックします。あなたは 'tsql -C'であなたが使っているバージョンを見つけることができます。 – FlipperPA
こんにちは@FlipperPA v0.95.91を使用しています - v1が生産中であることを認識していませんでした。これはプロダクションサーバー上にあるので、私は待ちますか? – spirie