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

Sebastien FLAESCH <[email protected]> Thu, 28 Feb 2019 15:19:11 +0100
Newsgroups gmane.comp.db.tds.freetds
Organization Four Js Development Tools
Message-ID <[email protected]>
R3JlYXQhIFRoYW5rcyBmb3IgbG9va2luZyBhdCB0aGlzIQoKSSBndWVzcyB0aGUgaWRlYSBpcyB0
byB1c2UgVVRGLTggaW4gdGhlIHdob2xlIGNoYWluOgoKQ2xpZW50IE9EQkMgYXBwIChjaGFyKikg
aW4gVVRGLTggPD0+ICBURFMgIDw9PiBVVEYtOCBjaGFyL3ZhcmNoYXIgY29sdW1uCgpJbnN0ZWFk
IG9mIGhhdmluZyB1bi1uZWNlc3NhcnkgY2hhcnNldCBjb252ZXJzaW9uczoKCkNsaWVudCBPREJD
IGFwcCAoY2hhciopIGluIFVURi04IDw9PiBVVEYtMTYgPD0+IFREUyA8PT4gVVRGLTE2IDw9PiBV
VEYtOCBjaGFyL3ZhcmNoYXIgY29sdW1uCgpKdXN0IGd1ZXNzaW5nLCBJIGFtIG5vdCBhIFREUyBw
cm90b2NvbCBleHBlcnQuCgpTZWIKCk9uIDIvMjgvMTkgMTE6NTYgQU0sIEZyZWRpYW5vIFppZ2xp
byB3cm90ZToKPiBIaSwKPiAgICBzbywgaW5zdGFsbGVkIGEgc3FsIDIwMTkgYW5kIHRyaWVkIHNv
bWUgcXVlcmllcy4KPiBVc2luZyB0aGUgZHJpdmVyIHByb3ZpZGVkIGluc2lkZSB0aGUgZG9ja2Vy
IGltYWdlIHRoZSAiYWJjIiBpcwo+IHJldHVybmVkIGFzICJhYmMgICAgICAgIiwgc28KPiB0aGUg
Q0hBUigxMCkgYXJlIHJldHVybmVkIGVuY29kZWQgaW4gVVRGLTggYW5kIHRoZSAiMTAiIGlzIGp1
c3QgdGhlCj4gbnVtYmVyIG9mIGJ5dGVzLgo+IE5vdywgd2h5IHRoZSBzZXJ2ZXIgZGVjaWRlZCB0
byByZXR1cm4gVVRGLTggYW5kIG5vdCBjb252ZXJ0IHRvIE5WQVJDSEFSICh3aGljaAo+IG1ha2Ug
c2Vuc2UgdG8gbWUgZm9yIG9sZCBjbGllbnRzKSBpdCdzIHRoZSBpc3N1ZS4gTWF5YmUgdGhleSBi
dW1wIHRoZQo+IHByb3RvY29sIHZlcnNpb24sCj4gbWF5YmUgdGhleSBhcmUgdXNpbmcgc29tZSBv
dGhlciBmbGFncy92ZXJzaW9uIChsaWtlIGNsaWVudCB2ZXJzaW9uCj4gcGFzc2VzIHRocm91Z2gK
PiB0aGUgcHJlLWxvZ2luKS4gVW5mb3J0dW5hdGVseSB0aGUgbG9naW4gaXMgZW5jcnlwdGVkIHNv
IEknbGwgaGF2ZSB0bwo+IGRpZyBhIGJpdCBtb3JlICh3ZWxsLAo+IGp1c3QgcXVlc3Rpb24gb2Yg
c2V0dXAgYW5kIHVzZSB0aGUgYm91bmNlIHV0aWxpdHksIG5vdCBzdXJlIGlmIGl0Cj4gc3VwcG9y
dHMgcHJlLWxvZ2luKS4KPiAKPiBGcmVkaWFubwo+IAo+IElsIGdpb3JubyBnaW8gMjggZmViIDIw
MTkgYWxsZSBvcmUgMTA6NTAgU2ViYXN0aWVuIEZMQUVTQ0gKPiA8c2ZANGpzLmNvbT4gaGEgc2Ny
aXR0bzoKPj4KPj4gSGVsbG8gQ3JhaWcsCj4+Cj4+IEkgZG9uJ3QgdGhpbmsgc286IEFuIE9EQkMg
cHJvZ3JhbSBzaG91bGQgYmUgYWJsZSB0byBwcm9wZXJseSBpZGVudGlmeQo+PiAoYXMgbXVjaCBh
cyBwb3NzaWJsZSkgdGhlIG9yaWdpbmFsIGRhdGFiYXNlIHR5cGUgdXNlZCBmb3IgYSBjb2x1bW4u
Cj4+Cj4+IFdlIG11c3QgYWxzbyBkaXN0aW5ndWlzaCB0aGUgY29uY2VwdCBvZiAidmFyaWFibGUg
bGVuZ3RoIiByZWdhcmRpbmcgdGhlCj4+IG51bWJlciBvZiBieXRlcyB1c2VkIHRvIGVuY29kZSBj
aGFyYWN0ZXJzLCB2ZXJzdXMgdGhlIGFjdHVhbCBsZW5ndGggb2YKPj4gdGhlIHN0cmluZyBpbiBj
aGFyYWN0ZXIgdW5pdHMuCj4+Cj4+IFBsdXMgdGhlIGZhY3QgdGhhdCBbTl1DSEFSIGNvbHVtbnMg
Y2FuIGJlIGJsYW5rLXBhZGRlZCwgd2hpbGUgW05dVkFSQ0hBUgo+PiBjb2x1bW5zIGFyZSBub3Qg
YW5kIHN0b3JlIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHRyYWlsaW5nIHdoaXRlIHNwYWNlcyBvZgo+
PiB0aGUgc3RyaW5nLCB0cnkgZm9yIGV4Ogo+Pgo+PiBjcmVhdGUgdGFibGUgdGFiMSAoIGMxIGNo
YXIoMTApLCBjMiB2YXJjaGFyKDEwKSApCj4+IGluc2VydCBpbnRvIHRhYjEgdmFsdWVzICggJ2Fi
YycsICdhYmMgICcgKQo+PiBzZWxlY3QgJ1snK2MxKyddJywgJ1snK2MyKyddJyBmcm9tIHRhYjEK
Pj4KPj4gWW91IHdpbGwgc2VlOgo+Pgo+PiBbYWJjICAgICAgIF0gW2FiYyAgXQo+Pgo+PiAoY2hl
Y2sgU0VUIEFOU0lfUEFERElORyBPTi9PRkYpCj4+Cj4+IC4uLgo+Pgo+PiBVVEYtOCBpcyBhIHZh
cmlhYmxlLXdpZHRoIGVuY29kaW5nOgo+Pgo+PiBhICA9PiBuZWVkcyAxIGJ5dGUKPj4gw6kgID0+
IG5lZWRzIDIgYnl0ZXMKPj4g5pyoID0+IG5lZWRzIDMgYnl0ZXMKPj4gLi4uIGV0YyAodGhlcmUg
Y2FuIGJlIG1vcmUgdGhhbiAzIGJ5dGVzKQo+Pgo+PiBJbiB0aGF0IGNvbnRleHQsIG9uZSBjYW4g
c2VlIGEgInZhcmlhYmxlIGxlbmd0aCIgaW4gYnl0ZSB1bml0cy4uLgo+Pgo+PiBCdXQgd2hlbiBj
b3VudGluZyBpbiBjaGFyYWN0ZXJzLCAnYcOp5pyoJyBpcyAzIGNoYXJhY3RlcnMsIG5vIG1hdHRl
ciB0aGUKPj4gZW5jb2RpbmcgdXNlZCB0byBzdG9yZSB0aGlzIHN0cmluZy4KPj4KPj4gWW91IGhh
dmUgYWxzbyB0aGUgY29uY2VwdCBvZiBieXRlLWxlbmd0aCBzZW1hbnRpY3MgdmVyc3VzIGNoYXIt
bGVuZ3RoCj4+IHNlbWFudGljczogV2hlbiBjcmVhdGluZyBhIENIQVIoMTApIGlzIHRoaXMgMTAg
Ynl0ZXMgb3IgMTAgY2hhcmFjdGVycz8KPj4gRGVwZW5kaW5nIG9uIHRoZSBkYXRhYmFzZSBicmFu
ZCwgaXQncyBieXRlcyAoU1FMIFNlcnZlciksIGNoYXJhY3RlcnMKPj4gKFBvc3RncmVTUUwpLCBv
ciBpdCBjYW4gZXZlbiBiZSBhIG1peCBhbmQgc3BlY2lmaWVkIGV4cGxpY2l0bHkgKGxpa2UKPj4g
aW4gT3JhY2xlIERCKS4KPj4KPj4gTm90ZTogWW91IGhhdmUgdGhlbiBhbHNvIHRoZSBjb25jZXB0
IG9mICJ3aWR0aCIgb3IgIm51bWJlciBvZiBjb2x1bW5zIjoKPj4gQSBsYXRpbiBjaGFyYWN0ZXIg
dGFrZXMgb25lIGNvbHVtbiwgd2hpbGUgYW4gQXNpYW4gbG9nb2dyYW0gdGFrZXMgMi4KPj4gU2Vl
IHdjd2lkdGgoKSBmb3IgbW9yZSBkZXRhaWxzLgo+Pgo+PiAuLi4KPj4KPj4gSW4gU1FMIFNlcnZl
ciwgTkNIQVIgYW5kIE5WQVJDSEFSIGNhbiBzdG9yZSBVVEYtMTYgd2hlbiB0aGUgU0MgbW9kaWZp
ZXIKPj4gaXMgdXNlZCBpbiB0aGUgZGF0YWJhc2UgY29sbGF0aW9uICh0aGV5IHN0b3JlIFVDUy0y
IHdoZW4gbm8gU0MgaXMgdXNlZCkKPj4KPj4gSW4gVVRGLTE2LCBhIGZpcnN0IHJhbmdlIG9mIGNo
YXJhY3RlcnMgYXJlIGVuY29kZWQgb24gMiBieXRlcywgYnV0IHlvdQo+PiBjYW4gaGF2ZSAic3Vy
cm9nYXRlIHBhaXJzIiBlbmNvZGVkIG9uIDQgYnl0ZXMgKHR3byAxNi1iaXQgY29kZSB1bml0cyku
Cj4+Cj4+IEluIHlvdXIgbG9naWMsIHRoZSBOQ0hBUi9VVEYtMTYgdHlwZSBjb3VsZCBhbHNvIGJl
IGNvbnNpZGVyZWQgYXMgYQo+PiAidmFyaWFibGUgbGVuZ3RoIiB0eXBlIGFuZCBTUUxEZWNyaWJl
Q29sKCkgY291bGQgcmV0dXJuIFNRTF9XVkFSQ0hBUgo+PiBpbnN0ZWFkIG9mIFNRTF9XQ0hBUi4u
LiBJdCBtdXN0IG5vdCBhbmQgZG9lcyBub3QuCj4+Cj4+IENoZWVycywKPj4gU2ViCj4+Cj4+Cj4+
IE9uIDIvMjcvMTkgNDozMiBQTSwgQ3JhaWcgSmFja3NvbiB3cm90ZToKPj4+IEkgZG9uJ3Qga25v
dyBhbnl0aGluZyBhYm91dCBTUUwgU2VydmVyIDIwMTksIGJ1dCBpZiB0aGV5IGFkZGVkIHRoZSBv
cHRpb24KPj4+IHRvIGFsbG93IFVURi04IGVuY29kaW5nIG9mIGNoYXJhY3RlciBzdHJpbmdzLCBp
dCB3b3VsZCBzZWVtIG5hdHVyYWwgdGhhdAo+Pj4gc2FpZCBzdHJpbmdzIHdvdWxkIGJlIHZhcmlh
YmxlLWxlbmd0aCwgZXZlbiBpZiBkZWNsYXJlZCBDSEFSKG4pLiBTdHJpbmdzCj4+PiBlbmNvZGVk
IGluIFVURi04IGFyZSBpbmhlcmVudGx5IHZhcmlhYmxlIGxlbmd0aC4KPj4+Cj4+PiBDcmFpZyBK
YWNrc29uCj4+Pgo+Pj4gT24gV2VkLCBGZWIgMjcsIDIwMTkgYXQgMTA6MjcgQU0gU2ViYXN0aWVu
IEZMQUVTQ0ggPHNmQDRqcy5jb20+IHdyb3RlOgo+Pj4KPj4+PiBIaSwKPj4+Pgo+Pj4+IEp1c3Qg
dHJpZWQgd2l0aCBURFMgNy40LCBpdCBkaWQgbm90IGhlbHAuCj4+Pj4KPj4+PiBJIGhhdmUgdGVz
dGVkIHRoZSBNUyBPREJDIGRyaXZlciAxNy4zLjEuMSwgaXQgd29ya3MgYXMgZXhwZWN0ZWQKPj4+
PiAoIEkgZ2V0IDEvU1FMX0NIQVIgZnJvbSBTUUxEZXNjcmliZUNvbCgpICkKPj4+Pgo+Pj4+IFlv
dSBtYXkga25vdyB0aGF0IGl0J3MgdmVyeSBlYXN5IHRvIHNldHVwIGFuIFNRTCBTZXJ2ZXIgMjAx
OSB3aXRoCj4+Pj4gZG9ja2VyLCBkbyB5b3U/Cj4+Pj4KPj4+PiBDaGVlcnMsCj4+Pj4gU2ViCj4+
Pj4KPj4+PiBPbiAyLzI3LzE5IDM6MDggUE0sIEZyZWRpYW5vIFppZ2xpbyB3cm90ZToKPj4+Pj4g
SGksCj4+Pj4+ICAgICAgSSB3b3VsZCB0cnkgdG8gdXNlIFREUyA3LjQsIG5vdCA3LjMuCj4+Pj4+
IEFsc28gSSB3b3VsZCB0cnkgdG8gdXNlIE1pY3Jvc29mdCBPREJDIGRyaXZlciBhbmQgYSBuZXR3
b3JrIGFuYWx5emVyCj4+Pj4+IChsaWtlIHdpcmVzaGFyaykuCj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMs
Cj4+Pj4+ICAgICAgRnJlZGlhbm8KPj4+Pj4KPj4+Pj4gSWwgZ2lvcm5vIG1hciAyNiBmZWIgMjAx
OSBhbGxlIG9yZSAxMToyNiBTZWJhc3RpZW4gRkxBRVNDSAo+Pj4+PiA8c2ZANGpzLmNvbT4gaGEg
c2NyaXR0bzoKPj4+Pj4+Cj4+Pj4+PiBUZXN0aW5nIEZyZWVURFMgMS4xcmMzIHdpdGggU1FMIFNl
cnZlciAyMDE5Ogo+Pj4+Pj4KPj4+Pj4+IEkgZ2V0IGFuIHVuZXhwZWN0ZWQgU1FMIHR5cGUgY29k
ZSB3aXRoIGEgQ0hBUigxMCkgY29sdW1uLCB3aGVuIHRoZQo+Pj4+Pj4gZGF0YWJhc2UgY29sbGF0
aW9uIGlzIHVzaW5nIFVURi04Lgo+Pj4+Pj4KPj4+Pj4+IEluc3RlYWQgb2YgU1FMX0NIQVIgKG9y
IFNRTF9XQ0hBUiksIEkgZ2V0IFNRTF9XVkFSQ0hBUi4KPj4+Pj4+Cj4+Pj4+PiBJIGhhdmUgY3Jl
YXRlZCBhIGRhdGFiYXNlIHdpdGggdGhpcyBjb2xsYXRpb246Cj4+Pj4+Pgo+Pj4+Pj4gICAgICAg
TGF0aW4xX0dlbmVyYWxfMTAwX0NJX0FTX1NDX1VURjgKPj4+Pj4+Cj4+Pj4+PiBUaGVuIGNyZWF0
ZWQgYSB0YWJsZSBsaWtlIHRoaXM6Cj4+Pj4+Pgo+Pj4+Pj4gICAgICAgQ1JFQVRFIFRBQkxFIG15
dGFiMSAoIGNvbDEgQ0hBUigxMCkgKQo+Pj4+Pj4KPj4+Pj4+IGFuZCBpbnNlcnRlZCBhIHJvdzoK
Pj4+Pj4+Cj4+Pj4+PiAgICAgICBJTlNFUlQgSU5UTyBteXRhYjEgVkFMVUVTICggJ2FiYycgKQo+
Pj4+Pj4KPj4+Pj4+IFRoZW4gaW4gdGhlIE9EQkMgcHJvZ3JhbToKPj4+Pj4+Cj4+Pj4+PiAgICAg
ICBTUUxFeGVjRGlyZWN0KC4uIlNFTEVDVCAqIEZST00gbXl0YWIxIi4uKQo+Pj4+Pj4gICAgICAg
U1FMRGVzY3JpYkNvbCguLi4pCj4+Pj4+Pgo+Pj4+Pj4gQ2hlY2sgdGhlIFREU0RVTVAgdHJhY2Ug
aW4gYXR0YWNobWVudCAoZnJlZXRkcy0yMDE5LTEubG9nKQo+Pj4+Pj4KPj4+Pj4+IHRva2VuLmM6
MTU0MTp0ZHM3X2dldF9kYXRhX2luZm86Cj4+Pj4+PiAgICAgICAgICAgICBjb2xuYW1lID0gY29s
MQo+Pj4+Pj4gICAgICAgICAgICAgdHlwZSA9IDM5ICh2YXJjaGFyKQo+Pj4+Pj4gICAgICAgICAg
ICAgc2VydmVyJ3MgdHlwZSA9IDIzMSAoeCBVQ1MtMiB2YXJjaGFyKSAgICAgICAgICAgPC0tIDIz
MSA/Cj4+Pj4+PiAgICAgICAgICAgICBjb2x1bW5fdmFyaW50X3NpemUgPSAyCj4+Pj4+PiAgICAg
ICAgICAgICBjb2x1bW5fc2l6ZSA9IDIwICgyMCBvbiBzZXJ2ZXIpCj4+Pj4+Pgo+Pj4+Pj4KPj4+
Pj4+IFRoZSBzYW1lIHByb2dyYW0sIGNvbm5lY3RpbmcgdG8gU1FMIFNlcnZlciAyMDE3ICh3ZXJl
IERCIGNvbGxhdGlvbiBpcwo+Pj4+IExhdGluMQo+Pj4+Pj4gd2l0aG91dCBVVEYtOCk6Cj4+Pj4+
Pgo+Pj4+Pj4KPj4+Pj4+IHRva2VuLmM6MTU0MTp0ZHM3X2dldF9kYXRhX2luZm86Cj4+Pj4+PiAg
ICAgICAgICAgICBjb2xuYW1lID0gY29sMQo+Pj4+Pj4gICAgICAgICAgICAgdHlwZSA9IDQ3IChj
aGFyKQo+Pj4+Pj4gICAgICAgICAgICAgc2VydmVyJ3MgdHlwZSA9IDE3NSAoeGNoYXIpICAgICAg
ICAgIDwtLSAxNzUKPj4+Pj4+ICAgICAgICAgICAgIGNvbHVtbl92YXJpbnRfc2l6ZSA9IDIKPj4+
Pj4+ICAgICAgICAgICAgIGNvbHVtbl9zaXplID0gMTAgKDEwIG9uIHNlcnZlcikKPj4+Pj4+Cj4+
Pj4+PiBXaXRoIFNRTCBTZXJ2ZXIgMjAxOSwgd2hlbiB1c2luZyBhbm90aGVyIGNvbGxhdGlvbiAo
bm9uLVVURi04KQo+Pj4+Pj4KPj4+Pj4+ICAgICAgICBDUkVBVEUgVEFCTEUgbXl0YWIyICggY29s
MSBDSEFSKDEwKSBDT0xMQVRFIExhdGluMV9HZW5lcmFsX0NJX0FTICkKPj4+Pj4+Cj4+Pj4+PiBJ
IGdldCB0aGUgZXhwZWN0ZWQgdGRzIHR5cGUgY29kZS4uLgo+Pj4+Pj4KPj4+Pj4+IFNlYgo+Pj4+
Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+
IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4+Pj4+PiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4+
Pj4+PiBodHRwczovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRkcwo+
Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+
PiBGcmVlVERTIG1haWxpbmcgbGlzdAo+Pj4+PiBGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCj4+
Pj4+IGh0dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVldGRzCj4+
Pj4+Cj4+Pj4KPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+Pj4+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4+Pj4gRnJlZVREU0BsaXN0cy5pYmlibGlv
Lm9yZwo+Pj4+IGh0dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVl
dGRzCj4+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCj4+PiBGcmVlVERTIG1haWxpbmcgbGlzdAo+Pj4gRnJlZVREU0BsaXN0cy5pYmlibGlvLm9y
Zwo+Pj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMK
Pj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4+IEZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPj4g
aHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMKPiBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEZyZWVURFMgbWFp
bGluZyBsaXN0Cj4gRnJlZVREU0BsaXN0cy5pYmlibGlvLm9yZwo+IGh0dHBzOi8vbGlzdHMuaWJp
Ymxpby5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVldGRzCj4gCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlVERTIG1haWxpbmcgbGlzdApGcmVlVERT
QGxpc3RzLmliaWJsaW8ub3JnCmh0dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcvbWFpbG1hbi9saXN0
aW5mby9mcmVldGRzCg==