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

Sebastien FLAESCH <[email protected]> Thu, 28 Feb 2019 11:50:09 +0100
Newsgroups gmane.comp.db.tds.freetds
Organization Four Js Development Tools
Message-ID <[email protected]>
SGVsbG8gQ3JhaWcsCgpJIGRvbid0IHRoaW5rIHNvOiBBbiBPREJDIHByb2dyYW0gc2hvdWxkIGJl
IGFibGUgdG8gcHJvcGVybHkgaWRlbnRpZnkKKGFzIG11Y2ggYXMgcG9zc2libGUpIHRoZSBvcmln
aW5hbCBkYXRhYmFzZSB0eXBlIHVzZWQgZm9yIGEgY29sdW1uLgoKV2UgbXVzdCBhbHNvIGRpc3Rp
bmd1aXNoIHRoZSBjb25jZXB0IG9mICJ2YXJpYWJsZSBsZW5ndGgiIHJlZ2FyZGluZyB0aGUKbnVt
YmVyIG9mIGJ5dGVzIHVzZWQgdG8gZW5jb2RlIGNoYXJhY3RlcnMsIHZlcnN1cyB0aGUgYWN0dWFs
IGxlbmd0aCBvZgp0aGUgc3RyaW5nIGluIGNoYXJhY3RlciB1bml0cy4KClBsdXMgdGhlIGZhY3Qg
dGhhdCBbTl1DSEFSIGNvbHVtbnMgY2FuIGJlIGJsYW5rLXBhZGRlZCwgd2hpbGUgW05dVkFSQ0hB
Ugpjb2x1bW5zIGFyZSBub3QgYW5kIHN0b3JlIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHRyYWlsaW5n
IHdoaXRlIHNwYWNlcyBvZgp0aGUgc3RyaW5nLCB0cnkgZm9yIGV4OgoKY3JlYXRlIHRhYmxlIHRh
YjEgKCBjMSBjaGFyKDEwKSwgYzIgdmFyY2hhcigxMCkgKQppbnNlcnQgaW50byB0YWIxIHZhbHVl
cyAoICdhYmMnLCAnYWJjICAnICkKc2VsZWN0ICdbJytjMSsnXScsICdbJytjMisnXScgZnJvbSB0
YWIxCgpZb3Ugd2lsbCBzZWU6CgpbYWJjICAgICAgIF0gW2FiYyAgXQoKKGNoZWNrIFNFVCBBTlNJ
X1BBRERJTkcgT04vT0ZGKQoKLi4uCgpVVEYtOCBpcyBhIHZhcmlhYmxlLXdpZHRoIGVuY29kaW5n
OgoKYSAgPT4gbmVlZHMgMSBieXRlCsOpICA9PiBuZWVkcyAyIGJ5dGVzCuacqCA9PiBuZWVkcyAz
IGJ5dGVzCi4uLiBldGMgKHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gMyBieXRlcykKCkluIHRoYXQg
Y29udGV4dCwgb25lIGNhbiBzZWUgYSAidmFyaWFibGUgbGVuZ3RoIiBpbiBieXRlIHVuaXRzLi4u
CgpCdXQgd2hlbiBjb3VudGluZyBpbiBjaGFyYWN0ZXJzLCAnYcOp5pyoJyBpcyAzIGNoYXJhY3Rl
cnMsIG5vIG1hdHRlciB0aGUKZW5jb2RpbmcgdXNlZCB0byBzdG9yZSB0aGlzIHN0cmluZy4KCllv
dSBoYXZlIGFsc28gdGhlIGNvbmNlcHQgb2YgYnl0ZS1sZW5ndGggc2VtYW50aWNzIHZlcnN1cyBj
aGFyLWxlbmd0aApzZW1hbnRpY3M6IFdoZW4gY3JlYXRpbmcgYSBDSEFSKDEwKSBpcyB0aGlzIDEw
IGJ5dGVzIG9yIDEwIGNoYXJhY3RlcnM/CkRlcGVuZGluZyBvbiB0aGUgZGF0YWJhc2UgYnJhbmQs
IGl0J3MgYnl0ZXMgKFNRTCBTZXJ2ZXIpLCBjaGFyYWN0ZXJzCihQb3N0Z3JlU1FMKSwgb3IgaXQg
Y2FuIGV2ZW4gYmUgYSBtaXggYW5kIHNwZWNpZmllZCBleHBsaWNpdGx5IChsaWtlCmluIE9yYWNs
ZSBEQikuCgpOb3RlOiBZb3UgaGF2ZSB0aGVuIGFsc28gdGhlIGNvbmNlcHQgb2YgIndpZHRoIiBv
ciAibnVtYmVyIG9mIGNvbHVtbnMiOgpBIGxhdGluIGNoYXJhY3RlciB0YWtlcyBvbmUgY29sdW1u
LCB3aGlsZSBhbiBBc2lhbiBsb2dvZ3JhbSB0YWtlcyAyLgpTZWUgd2N3aWR0aCgpIGZvciBtb3Jl
IGRldGFpbHMuCgouLi4KCkluIFNRTCBTZXJ2ZXIsIE5DSEFSIGFuZCBOVkFSQ0hBUiBjYW4gc3Rv
cmUgVVRGLTE2IHdoZW4gdGhlIFNDIG1vZGlmaWVyCmlzIHVzZWQgaW4gdGhlIGRhdGFiYXNlIGNv
bGxhdGlvbiAodGhleSBzdG9yZSBVQ1MtMiB3aGVuIG5vIFNDIGlzIHVzZWQpCgpJbiBVVEYtMTYs
IGEgZmlyc3QgcmFuZ2Ugb2YgY2hhcmFjdGVycyBhcmUgZW5jb2RlZCBvbiAyIGJ5dGVzLCBidXQg
eW91CmNhbiBoYXZlICJzdXJyb2dhdGUgcGFpcnMiIGVuY29kZWQgb24gNCBieXRlcyAodHdvIDE2
LWJpdCBjb2RlIHVuaXRzKS4KCkluIHlvdXIgbG9naWMsIHRoZSBOQ0hBUi9VVEYtMTYgdHlwZSBj
b3VsZCBhbHNvIGJlIGNvbnNpZGVyZWQgYXMgYQoidmFyaWFibGUgbGVuZ3RoIiB0eXBlIGFuZCBT
UUxEZWNyaWJlQ29sKCkgY291bGQgcmV0dXJuIFNRTF9XVkFSQ0hBUgppbnN0ZWFkIG9mIFNRTF9X
Q0hBUi4uLiBJdCBtdXN0IG5vdCBhbmQgZG9lcyBub3QuCgpDaGVlcnMsClNlYgoKCk9uIDIvMjcv
MTkgNDozMiBQTSwgQ3JhaWcgSmFja3NvbiB3cm90ZToKPiBJIGRvbid0IGtub3cgYW55dGhpbmcg
YWJvdXQgU1FMIFNlcnZlciAyMDE5LCBidXQgaWYgdGhleSBhZGRlZCB0aGUgb3B0aW9uCj4gdG8g
YWxsb3cgVVRGLTggZW5jb2Rpbmcgb2YgY2hhcmFjdGVyIHN0cmluZ3MsIGl0IHdvdWxkIHNlZW0g
bmF0dXJhbCB0aGF0Cj4gc2FpZCBzdHJpbmdzIHdvdWxkIGJlIHZhcmlhYmxlLWxlbmd0aCwgZXZl
biBpZiBkZWNsYXJlZCBDSEFSKG4pLiBTdHJpbmdzCj4gZW5jb2RlZCBpbiBVVEYtOCBhcmUgaW5o
ZXJlbnRseSB2YXJpYWJsZSBsZW5ndGguCj4gCj4gQ3JhaWcgSmFja3Nvbgo+IAo+IE9uIFdlZCwg
RmViIDI3LCAyMDE5IGF0IDEwOjI3IEFNIFNlYmFzdGllbiBGTEFFU0NIIDxzZkA0anMuY29tPiB3
cm90ZToKPiAKPj4gSGksCj4+Cj4+IEp1c3QgdHJpZWQgd2l0aCBURFMgNy40LCBpdCBkaWQgbm90
IGhlbHAuCj4+Cj4+IEkgaGF2ZSB0ZXN0ZWQgdGhlIE1TIE9EQkMgZHJpdmVyIDE3LjMuMS4xLCBp
dCB3b3JrcyBhcyBleHBlY3RlZAo+PiAoIEkgZ2V0IDEvU1FMX0NIQVIgZnJvbSBTUUxEZXNjcmli
ZUNvbCgpICkKPj4KPj4gWW91IG1heSBrbm93IHRoYXQgaXQncyB2ZXJ5IGVhc3kgdG8gc2V0dXAg
YW4gU1FMIFNlcnZlciAyMDE5IHdpdGgKPj4gZG9ja2VyLCBkbyB5b3U/Cj4+Cj4+IENoZWVycywK
Pj4gU2ViCj4+Cj4+IE9uIDIvMjcvMTkgMzowOCBQTSwgRnJlZGlhbm8gWmlnbGlvIHdyb3RlOgo+
Pj4gSGksCj4+PiAgICAgSSB3b3VsZCB0cnkgdG8gdXNlIFREUyA3LjQsIG5vdCA3LjMuCj4+PiBB
bHNvIEkgd291bGQgdHJ5IHRvIHVzZSBNaWNyb3NvZnQgT0RCQyBkcml2ZXIgYW5kIGEgbmV0d29y
ayBhbmFseXplcgo+Pj4gKGxpa2Ugd2lyZXNoYXJrKS4KPj4+Cj4+PiBSZWdhcmRzLAo+Pj4gICAg
IEZyZWRpYW5vCj4+Pgo+Pj4gSWwgZ2lvcm5vIG1hciAyNiBmZWIgMjAxOSBhbGxlIG9yZSAxMToy
NiBTZWJhc3RpZW4gRkxBRVNDSAo+Pj4gPHNmQDRqcy5jb20+IGhhIHNjcml0dG86Cj4+Pj4KPj4+
PiBUZXN0aW5nIEZyZWVURFMgMS4xcmMzIHdpdGggU1FMIFNlcnZlciAyMDE5Ogo+Pj4+Cj4+Pj4g
SSBnZXQgYW4gdW5leHBlY3RlZCBTUUwgdHlwZSBjb2RlIHdpdGggYSBDSEFSKDEwKSBjb2x1bW4s
IHdoZW4gdGhlCj4+Pj4gZGF0YWJhc2UgY29sbGF0aW9uIGlzIHVzaW5nIFVURi04Lgo+Pj4+Cj4+
Pj4gSW5zdGVhZCBvZiBTUUxfQ0hBUiAob3IgU1FMX1dDSEFSKSwgSSBnZXQgU1FMX1dWQVJDSEFS
Lgo+Pj4+Cj4+Pj4gSSBoYXZlIGNyZWF0ZWQgYSBkYXRhYmFzZSB3aXRoIHRoaXMgY29sbGF0aW9u
Ogo+Pj4+Cj4+Pj4gICAgICBMYXRpbjFfR2VuZXJhbF8xMDBfQ0lfQVNfU0NfVVRGOAo+Pj4+Cj4+
Pj4gVGhlbiBjcmVhdGVkIGEgdGFibGUgbGlrZSB0aGlzOgo+Pj4+Cj4+Pj4gICAgICBDUkVBVEUg
VEFCTEUgbXl0YWIxICggY29sMSBDSEFSKDEwKSApCj4+Pj4KPj4+PiBhbmQgaW5zZXJ0ZWQgYSBy
b3c6Cj4+Pj4KPj4+PiAgICAgIElOU0VSVCBJTlRPIG15dGFiMSBWQUxVRVMgKCAnYWJjJyApCj4+
Pj4KPj4+PiBUaGVuIGluIHRoZSBPREJDIHByb2dyYW06Cj4+Pj4KPj4+PiAgICAgIFNRTEV4ZWNE
aXJlY3QoLi4iU0VMRUNUICogRlJPTSBteXRhYjEiLi4pCj4+Pj4gICAgICBTUUxEZXNjcmliQ29s
KC4uLikKPj4+Pgo+Pj4+IENoZWNrIHRoZSBURFNEVU1QIHRyYWNlIGluIGF0dGFjaG1lbnQgKGZy
ZWV0ZHMtMjAxOS0xLmxvZykKPj4+Pgo+Pj4+IHRva2VuLmM6MTU0MTp0ZHM3X2dldF9kYXRhX2lu
Zm86Cj4+Pj4gICAgICAgICAgICBjb2xuYW1lID0gY29sMQo+Pj4+ICAgICAgICAgICAgdHlwZSA9
IDM5ICh2YXJjaGFyKQo+Pj4+ICAgICAgICAgICAgc2VydmVyJ3MgdHlwZSA9IDIzMSAoeCBVQ1Mt
MiB2YXJjaGFyKSAgICAgICAgICAgPC0tIDIzMSA/Cj4+Pj4gICAgICAgICAgICBjb2x1bW5fdmFy
aW50X3NpemUgPSAyCj4+Pj4gICAgICAgICAgICBjb2x1bW5fc2l6ZSA9IDIwICgyMCBvbiBzZXJ2
ZXIpCj4+Pj4KPj4+Pgo+Pj4+IFRoZSBzYW1lIHByb2dyYW0sIGNvbm5lY3RpbmcgdG8gU1FMIFNl
cnZlciAyMDE3ICh3ZXJlIERCIGNvbGxhdGlvbiBpcwo+PiBMYXRpbjEKPj4+PiB3aXRob3V0IFVU
Ri04KToKPj4+Pgo+Pj4+Cj4+Pj4gdG9rZW4uYzoxNTQxOnRkczdfZ2V0X2RhdGFfaW5mbzoKPj4+
PiAgICAgICAgICAgIGNvbG5hbWUgPSBjb2wxCj4+Pj4gICAgICAgICAgICB0eXBlID0gNDcgKGNo
YXIpCj4+Pj4gICAgICAgICAgICBzZXJ2ZXIncyB0eXBlID0gMTc1ICh4Y2hhcikgICAgICAgICAg
PC0tIDE3NQo+Pj4+ICAgICAgICAgICAgY29sdW1uX3ZhcmludF9zaXplID0gMgo+Pj4+ICAgICAg
ICAgICAgY29sdW1uX3NpemUgPSAxMCAoMTAgb24gc2VydmVyKQo+Pj4+Cj4+Pj4gV2l0aCBTUUwg
U2VydmVyIDIwMTksIHdoZW4gdXNpbmcgYW5vdGhlciBjb2xsYXRpb24gKG5vbi1VVEYtOCkKPj4+
Pgo+Pj4+ICAgICAgIENSRUFURSBUQUJMRSBteXRhYjIgKCBjb2wxIENIQVIoMTApIENPTExBVEUg
TGF0aW4xX0dlbmVyYWxfQ0lfQVMgKQo+Pj4+Cj4+Pj4gSSBnZXQgdGhlIGV4cGVjdGVkIHRkcyB0
eXBlIGNvZGUuLi4KPj4+Pgo+Pj4+IFNlYgo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4+Pj4gRnJlZVREUyBtYWlsaW5nIGxpc3QKPj4+PiBGcmVl
VERTQGxpc3RzLmliaWJsaW8ub3JnCj4+Pj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWls
bWFuL2xpc3RpbmZvL2ZyZWV0ZHMKPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCj4+PiBGcmVlVERTIG1haWxpbmcgbGlzdAo+Pj4gRnJlZVREU0BsaXN0
cy5pYmlibGlvLm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL2ZyZWV0ZHMKPj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCj4+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4+IEZyZWVURFNAbGlzdHMuaWJp
Ymxpby5vcmcKPj4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zy
ZWV0ZHMKPj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwo+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4gRnJlZVREU0BsaXN0cy5pYmlibGlvLm9yZwo+IGh0
dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVldGRzCj4gCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlVERTIG1haWxp
bmcgbGlzdApGcmVlVERTQGxpc3RzLmliaWJsaW8ub3JnCmh0dHBzOi8vbGlzdHMuaWJpYmxpby5v
cmcvbWFpbG1hbi9saXN0aW5mby9mcmVldGRzCg==