Re: SQL Server 2019: CHAR(N) using UTF-8 is seen as SQL_NVARCHAR by SQLDescribeCol()

Frediano Ziglio <[email protected]> Thu, 28 Feb 2019 10:56:03 +0000
Newsgroups gmane.comp.db.tds.freetds
Message-ID <CAHt6W4cgGysreyy=zhP7sbUrHUdhbyfQZYqVoXP6OaJ8YbpDCA@mail.gmail.com>
SGksCiAgc28sIGluc3RhbGxlZCBhIHNxbCAyMDE5IGFuZCB0cmllZCBzb21lIHF1ZXJpZXMuClVz
aW5nIHRoZSBkcml2ZXIgcHJvdmlkZWQgaW5zaWRlIHRoZSBkb2NrZXIgaW1hZ2UgdGhlICJhYmMi
IGlzCnJldHVybmVkIGFzICJhYmMgICAgICAgIiwgc28KdGhlIENIQVIoMTApIGFyZSByZXR1cm5l
ZCBlbmNvZGVkIGluIFVURi04IGFuZCB0aGUgIjEwIiBpcyBqdXN0IHRoZQpudW1iZXIgb2YgYnl0
ZXMuCk5vdywgd2h5IHRoZSBzZXJ2ZXIgZGVjaWRlZCB0byByZXR1cm4gVVRGLTggYW5kIG5vdCBj
b252ZXJ0IHRvIE5WQVJDSEFSICh3aGljaAptYWtlIHNlbnNlIHRvIG1lIGZvciBvbGQgY2xpZW50
cykgaXQncyB0aGUgaXNzdWUuIE1heWJlIHRoZXkgYnVtcCB0aGUKcHJvdG9jb2wgdmVyc2lvbiwK
bWF5YmUgdGhleSBhcmUgdXNpbmcgc29tZSBvdGhlciBmbGFncy92ZXJzaW9uIChsaWtlIGNsaWVu
dCB2ZXJzaW9uCnBhc3NlcyB0aHJvdWdoCnRoZSBwcmUtbG9naW4pLiBVbmZvcnR1bmF0ZWx5IHRo
ZSBsb2dpbiBpcyBlbmNyeXB0ZWQgc28gSSdsbCBoYXZlIHRvCmRpZyBhIGJpdCBtb3JlICh3ZWxs
LApqdXN0IHF1ZXN0aW9uIG9mIHNldHVwIGFuZCB1c2UgdGhlIGJvdW5jZSB1dGlsaXR5LCBub3Qg
c3VyZSBpZiBpdApzdXBwb3J0cyBwcmUtbG9naW4pLgoKRnJlZGlhbm8KCklsIGdpb3JubyBnaW8g
MjggZmViIDIwMTkgYWxsZSBvcmUgMTA6NTAgU2ViYXN0aWVuIEZMQUVTQ0gKPHNmQDRqcy5jb20+
IGhhIHNjcml0dG86Cj4KPiBIZWxsbyBDcmFpZywKPgo+IEkgZG9uJ3QgdGhpbmsgc286IEFuIE9E
QkMgcHJvZ3JhbSBzaG91bGQgYmUgYWJsZSB0byBwcm9wZXJseSBpZGVudGlmeQo+IChhcyBtdWNo
IGFzIHBvc3NpYmxlKSB0aGUgb3JpZ2luYWwgZGF0YWJhc2UgdHlwZSB1c2VkIGZvciBhIGNvbHVt
bi4KPgo+IFdlIG11c3QgYWxzbyBkaXN0aW5ndWlzaCB0aGUgY29uY2VwdCBvZiAidmFyaWFibGUg
bGVuZ3RoIiByZWdhcmRpbmcgdGhlCj4gbnVtYmVyIG9mIGJ5dGVzIHVzZWQgdG8gZW5jb2RlIGNo
YXJhY3RlcnMsIHZlcnN1cyB0aGUgYWN0dWFsIGxlbmd0aCBvZgo+IHRoZSBzdHJpbmcgaW4gY2hh
cmFjdGVyIHVuaXRzLgo+Cj4gUGx1cyB0aGUgZmFjdCB0aGF0IFtOXUNIQVIgY29sdW1ucyBjYW4g
YmUgYmxhbmstcGFkZGVkLCB3aGlsZSBbTl1WQVJDSEFSCj4gY29sdW1ucyBhcmUgbm90IGFuZCBz
dG9yZSB0aGUgYWN0dWFsIG51bWJlciBvZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMgb2YKPiB0aGUg
c3RyaW5nLCB0cnkgZm9yIGV4Ogo+Cj4gY3JlYXRlIHRhYmxlIHRhYjEgKCBjMSBjaGFyKDEwKSwg
YzIgdmFyY2hhcigxMCkgKQo+IGluc2VydCBpbnRvIHRhYjEgdmFsdWVzICggJ2FiYycsICdhYmMg
ICcgKQo+IHNlbGVjdCAnWycrYzErJ10nLCAnWycrYzIrJ10nIGZyb20gdGFiMQo+Cj4gWW91IHdp
bGwgc2VlOgo+Cj4gW2FiYyAgICAgICBdIFthYmMgIF0KPgo+IChjaGVjayBTRVQgQU5TSV9QQURE
SU5HIE9OL09GRikKPgo+IC4uLgo+Cj4gVVRGLTggaXMgYSB2YXJpYWJsZS13aWR0aCBlbmNvZGlu
ZzoKPgo+IGEgID0+IG5lZWRzIDEgYnl0ZQo+IMOpICA9PiBuZWVkcyAyIGJ5dGVzCj4g5pyoID0+
IG5lZWRzIDMgYnl0ZXMKPiAuLi4gZXRjICh0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIDMgYnl0ZXMp
Cj4KPiBJbiB0aGF0IGNvbnRleHQsIG9uZSBjYW4gc2VlIGEgInZhcmlhYmxlIGxlbmd0aCIgaW4g
Ynl0ZSB1bml0cy4uLgo+Cj4gQnV0IHdoZW4gY291bnRpbmcgaW4gY2hhcmFjdGVycywgJ2HDqeac
qCcgaXMgMyBjaGFyYWN0ZXJzLCBubyBtYXR0ZXIgdGhlCj4gZW5jb2RpbmcgdXNlZCB0byBzdG9y
ZSB0aGlzIHN0cmluZy4KPgo+IFlvdSBoYXZlIGFsc28gdGhlIGNvbmNlcHQgb2YgYnl0ZS1sZW5n
dGggc2VtYW50aWNzIHZlcnN1cyBjaGFyLWxlbmd0aAo+IHNlbWFudGljczogV2hlbiBjcmVhdGlu
ZyBhIENIQVIoMTApIGlzIHRoaXMgMTAgYnl0ZXMgb3IgMTAgY2hhcmFjdGVycz8KPiBEZXBlbmRp
bmcgb24gdGhlIGRhdGFiYXNlIGJyYW5kLCBpdCdzIGJ5dGVzIChTUUwgU2VydmVyKSwgY2hhcmFj
dGVycwo+IChQb3N0Z3JlU1FMKSwgb3IgaXQgY2FuIGV2ZW4gYmUgYSBtaXggYW5kIHNwZWNpZmll
ZCBleHBsaWNpdGx5IChsaWtlCj4gaW4gT3JhY2xlIERCKS4KPgo+IE5vdGU6IFlvdSBoYXZlIHRo
ZW4gYWxzbyB0aGUgY29uY2VwdCBvZiAid2lkdGgiIG9yICJudW1iZXIgb2YgY29sdW1ucyI6Cj4g
QSBsYXRpbiBjaGFyYWN0ZXIgdGFrZXMgb25lIGNvbHVtbiwgd2hpbGUgYW4gQXNpYW4gbG9nb2dy
YW0gdGFrZXMgMi4KPiBTZWUgd2N3aWR0aCgpIGZvciBtb3JlIGRldGFpbHMuCj4KPiAuLi4KPgo+
IEluIFNRTCBTZXJ2ZXIsIE5DSEFSIGFuZCBOVkFSQ0hBUiBjYW4gc3RvcmUgVVRGLTE2IHdoZW4g
dGhlIFNDIG1vZGlmaWVyCj4gaXMgdXNlZCBpbiB0aGUgZGF0YWJhc2UgY29sbGF0aW9uICh0aGV5
IHN0b3JlIFVDUy0yIHdoZW4gbm8gU0MgaXMgdXNlZCkKPgo+IEluIFVURi0xNiwgYSBmaXJzdCBy
YW5nZSBvZiBjaGFyYWN0ZXJzIGFyZSBlbmNvZGVkIG9uIDIgYnl0ZXMsIGJ1dCB5b3UKPiBjYW4g
aGF2ZSAic3Vycm9nYXRlIHBhaXJzIiBlbmNvZGVkIG9uIDQgYnl0ZXMgKHR3byAxNi1iaXQgY29k
ZSB1bml0cykuCj4KPiBJbiB5b3VyIGxvZ2ljLCB0aGUgTkNIQVIvVVRGLTE2IHR5cGUgY291bGQg
YWxzbyBiZSBjb25zaWRlcmVkIGFzIGEKPiAidmFyaWFibGUgbGVuZ3RoIiB0eXBlIGFuZCBTUUxE
ZWNyaWJlQ29sKCkgY291bGQgcmV0dXJuIFNRTF9XVkFSQ0hBUgo+IGluc3RlYWQgb2YgU1FMX1dD
SEFSLi4uIEl0IG11c3Qgbm90IGFuZCBkb2VzIG5vdC4KPgo+IENoZWVycywKPiBTZWIKPgo+Cj4g
T24gMi8yNy8xOSA0OjMyIFBNLCBDcmFpZyBKYWNrc29uIHdyb3RlOgo+ID4gSSBkb24ndCBrbm93
IGFueXRoaW5nIGFib3V0IFNRTCBTZXJ2ZXIgMjAxOSwgYnV0IGlmIHRoZXkgYWRkZWQgdGhlIG9w
dGlvbgo+ID4gdG8gYWxsb3cgVVRGLTggZW5jb2Rpbmcgb2YgY2hhcmFjdGVyIHN0cmluZ3MsIGl0
IHdvdWxkIHNlZW0gbmF0dXJhbCB0aGF0Cj4gPiBzYWlkIHN0cmluZ3Mgd291bGQgYmUgdmFyaWFi
bGUtbGVuZ3RoLCBldmVuIGlmIGRlY2xhcmVkIENIQVIobikuIFN0cmluZ3MKPiA+IGVuY29kZWQg
aW4gVVRGLTggYXJlIGluaGVyZW50bHkgdmFyaWFibGUgbGVuZ3RoLgo+ID4KPiA+IENyYWlnIEph
Y2tzb24KPiA+Cj4gPiBPbiBXZWQsIEZlYiAyNywgMjAxOSBhdCAxMDoyNyBBTSBTZWJhc3RpZW4g
RkxBRVNDSCA8c2ZANGpzLmNvbT4gd3JvdGU6Cj4gPgo+ID4+IEhpLAo+ID4+Cj4gPj4gSnVzdCB0
cmllZCB3aXRoIFREUyA3LjQsIGl0IGRpZCBub3QgaGVscC4KPiA+Pgo+ID4+IEkgaGF2ZSB0ZXN0
ZWQgdGhlIE1TIE9EQkMgZHJpdmVyIDE3LjMuMS4xLCBpdCB3b3JrcyBhcyBleHBlY3RlZAo+ID4+
ICggSSBnZXQgMS9TUUxfQ0hBUiBmcm9tIFNRTERlc2NyaWJlQ29sKCkgKQo+ID4+Cj4gPj4gWW91
IG1heSBrbm93IHRoYXQgaXQncyB2ZXJ5IGVhc3kgdG8gc2V0dXAgYW4gU1FMIFNlcnZlciAyMDE5
IHdpdGgKPiA+PiBkb2NrZXIsIGRvIHlvdT8KPiA+Pgo+ID4+IENoZWVycywKPiA+PiBTZWIKPiA+
Pgo+ID4+IE9uIDIvMjcvMTkgMzowOCBQTSwgRnJlZGlhbm8gWmlnbGlvIHdyb3RlOgo+ID4+PiBI
aSwKPiA+Pj4gICAgIEkgd291bGQgdHJ5IHRvIHVzZSBURFMgNy40LCBub3QgNy4zLgo+ID4+PiBB
bHNvIEkgd291bGQgdHJ5IHRvIHVzZSBNaWNyb3NvZnQgT0RCQyBkcml2ZXIgYW5kIGEgbmV0d29y
ayBhbmFseXplcgo+ID4+PiAobGlrZSB3aXJlc2hhcmspLgo+ID4+Pgo+ID4+PiBSZWdhcmRzLAo+
ID4+PiAgICAgRnJlZGlhbm8KPiA+Pj4KPiA+Pj4gSWwgZ2lvcm5vIG1hciAyNiBmZWIgMjAxOSBh
bGxlIG9yZSAxMToyNiBTZWJhc3RpZW4gRkxBRVNDSAo+ID4+PiA8c2ZANGpzLmNvbT4gaGEgc2Ny
aXR0bzoKPiA+Pj4+Cj4gPj4+PiBUZXN0aW5nIEZyZWVURFMgMS4xcmMzIHdpdGggU1FMIFNlcnZl
ciAyMDE5Ogo+ID4+Pj4KPiA+Pj4+IEkgZ2V0IGFuIHVuZXhwZWN0ZWQgU1FMIHR5cGUgY29kZSB3
aXRoIGEgQ0hBUigxMCkgY29sdW1uLCB3aGVuIHRoZQo+ID4+Pj4gZGF0YWJhc2UgY29sbGF0aW9u
IGlzIHVzaW5nIFVURi04Lgo+ID4+Pj4KPiA+Pj4+IEluc3RlYWQgb2YgU1FMX0NIQVIgKG9yIFNR
TF9XQ0hBUiksIEkgZ2V0IFNRTF9XVkFSQ0hBUi4KPiA+Pj4+Cj4gPj4+PiBJIGhhdmUgY3JlYXRl
ZCBhIGRhdGFiYXNlIHdpdGggdGhpcyBjb2xsYXRpb246Cj4gPj4+Pgo+ID4+Pj4gICAgICBMYXRp
bjFfR2VuZXJhbF8xMDBfQ0lfQVNfU0NfVVRGOAo+ID4+Pj4KPiA+Pj4+IFRoZW4gY3JlYXRlZCBh
IHRhYmxlIGxpa2UgdGhpczoKPiA+Pj4+Cj4gPj4+PiAgICAgIENSRUFURSBUQUJMRSBteXRhYjEg
KCBjb2wxIENIQVIoMTApICkKPiA+Pj4+Cj4gPj4+PiBhbmQgaW5zZXJ0ZWQgYSByb3c6Cj4gPj4+
Pgo+ID4+Pj4gICAgICBJTlNFUlQgSU5UTyBteXRhYjEgVkFMVUVTICggJ2FiYycgKQo+ID4+Pj4K
PiA+Pj4+IFRoZW4gaW4gdGhlIE9EQkMgcHJvZ3JhbToKPiA+Pj4+Cj4gPj4+PiAgICAgIFNRTEV4
ZWNEaXJlY3QoLi4iU0VMRUNUICogRlJPTSBteXRhYjEiLi4pCj4gPj4+PiAgICAgIFNRTERlc2Ny
aWJDb2woLi4uKQo+ID4+Pj4KPiA+Pj4+IENoZWNrIHRoZSBURFNEVU1QIHRyYWNlIGluIGF0dGFj
aG1lbnQgKGZyZWV0ZHMtMjAxOS0xLmxvZykKPiA+Pj4+Cj4gPj4+PiB0b2tlbi5jOjE1NDE6dGRz
N19nZXRfZGF0YV9pbmZvOgo+ID4+Pj4gICAgICAgICAgICBjb2xuYW1lID0gY29sMQo+ID4+Pj4g
ICAgICAgICAgICB0eXBlID0gMzkgKHZhcmNoYXIpCj4gPj4+PiAgICAgICAgICAgIHNlcnZlcidz
IHR5cGUgPSAyMzEgKHggVUNTLTIgdmFyY2hhcikgICAgICAgICAgIDwtLSAyMzEgPwo+ID4+Pj4g
ICAgICAgICAgICBjb2x1bW5fdmFyaW50X3NpemUgPSAyCj4gPj4+PiAgICAgICAgICAgIGNvbHVt
bl9zaXplID0gMjAgKDIwIG9uIHNlcnZlcikKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gVGhlIHNhbWUg
cHJvZ3JhbSwgY29ubmVjdGluZyB0byBTUUwgU2VydmVyIDIwMTcgKHdlcmUgREIgY29sbGF0aW9u
IGlzCj4gPj4gTGF0aW4xCj4gPj4+PiB3aXRob3V0IFVURi04KToKPiA+Pj4+Cj4gPj4+Pgo+ID4+
Pj4gdG9rZW4uYzoxNTQxOnRkczdfZ2V0X2RhdGFfaW5mbzoKPiA+Pj4+ICAgICAgICAgICAgY29s
bmFtZSA9IGNvbDEKPiA+Pj4+ICAgICAgICAgICAgdHlwZSA9IDQ3IChjaGFyKQo+ID4+Pj4gICAg
ICAgICAgICBzZXJ2ZXIncyB0eXBlID0gMTc1ICh4Y2hhcikgICAgICAgICAgPC0tIDE3NQo+ID4+
Pj4gICAgICAgICAgICBjb2x1bW5fdmFyaW50X3NpemUgPSAyCj4gPj4+PiAgICAgICAgICAgIGNv
bHVtbl9zaXplID0gMTAgKDEwIG9uIHNlcnZlcikKPiA+Pj4+Cj4gPj4+PiBXaXRoIFNRTCBTZXJ2
ZXIgMjAxOSwgd2hlbiB1c2luZyBhbm90aGVyIGNvbGxhdGlvbiAobm9uLVVURi04KQo+ID4+Pj4K
PiA+Pj4+ICAgICAgIENSRUFURSBUQUJMRSBteXRhYjIgKCBjb2wxIENIQVIoMTApIENPTExBVEUg
TGF0aW4xX0dlbmVyYWxfQ0lfQVMgKQo+ID4+Pj4KPiA+Pj4+IEkgZ2V0IHRoZSBleHBlY3RlZCB0
ZHMgdHlwZSBjb2RlLi4uCj4gPj4+Pgo+ID4+Pj4gU2ViCj4gPj4+PiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+Pj4gRnJlZVREUyBtYWlsaW5nIGxp
c3QKPiA+Pj4+IEZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPiA+Pj4+IGh0dHBzOi8vbGlzdHMu
aWJpYmxpby5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVldGRzCj4gPj4+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+IEZyZWVURFMgbWFpbGluZyBs
aXN0Cj4gPj4+IEZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPiA+Pj4gaHR0cHM6Ly9saXN0cy5p
YmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMKPiA+Pj4KPiA+Pgo+ID4+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4gRnJlZVREUyBt
YWlsaW5nIGxpc3QKPiA+PiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4gPj4gaHR0cHM6Ly9s
aXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMKPiA+Pgo+ID4gX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEZyZWVURFMgbWFp
bGluZyBsaXN0Cj4gPiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4gPiBodHRwczovL2xpc3Rz
LmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRkcwo+ID4KPgo+IF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gRnJlZVREUyBtYWlsaW5nIGxp
c3QKPiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRnJlZVREUyBtYWlsaW5nIGxpc3QKRnJlZVREU0BsaXN0cy5pYmli
bGlvLm9yZwpodHRwczovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRk
cwo=