Skip to Content.
Sympa Menu

freetds - RE: [freetds] collate and TDS8

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Lowden, James K" <LowdenJK AT bernstein.com>
  • To: "'freetds AT lists.ibiblio.org'" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] collate and TDS8
  • Date: Fri, 6 Dec 2002 18:10:35 -0500

> From: Frediano Ziglio [mailto:freddyz77 AT tin.it]
> Sent: December 6, 2002 4:08 PM
>
> Il ven, 2002-12-06 alle 21:05, Lowden, James K ha scritto:
> > Does anyone in our mailing list audience have the following server
> > configuration?
> >
> > * MS SQL Server 2000
> > * Unicode collation != 1033 (General Unicode)
> > * character set != iso_1
> >
>
> collation can be specified for every column...
> Our server is configured for latin1/case insensitive, english... so it
> seem same of yours...

I have (pruned for mail):

1> sp_configure
2> go
name config_value run_value
--------------------------- ------------ -----------
default full-text language 1033 1033
default language 0 0
show advanced options 1 1
user connections 0 0
user options 0 0

1> sp_helpsort
2> go
Server default collation
--------------------------------------
Latin1-General, binary sort

> All this stuff are defined in windows...
> 10 bit for language (low), other for sublanguage.
> English (9) american (1) is 0x409 -> 1033

Yes, but:

1> select langid, lcid, msglangid, cast(name as char(30)) as name from
syslanguages where langid = 23
2> go
langid lcid msglangid name
------ ----------- --------- ------------------------------
23 1033 1033 British

The "sublanguage" wouldn't affect collation. Maybe that's why it doesn't
appear in syslanguages.

> > > - 2 bytes ???
> >
> > My next two bytes are always 00 01:
> >
>
> Mines are 0d 00 (0xd0 in LE??)...
> Full lcid on windows as also sort (bits 19-16) and version
> (bits 23-20)

Let's say we don't know anything about the next three bytes.

I have: 00 01 00
You have: d0 00 34

Our servers are configured the same way, except I use binary sorting order
(33280, 0x8200).

If the fifth byte is, as you said, syscharsets.id, then mine should be 0x32
(50). But mine's the default <shrug>. Perhaps I'm using SQL collation
instead of Windows collation? (I don't know how it was set up.) I can't
reconfigure my server to test that theory.

Your 0x34 tells us the sort order (and implies the character set).

That leaves bytes 3 and 4. If they're a 16-bit int, you have 0x0d (13) and
I 0x100 (256).

It can't be our client settings, because we don't transmit character set
information to the server, to it can't know what we use/want.

So far, the server's told us about the column:

datatype, size, name
locale id (bytes 1-2)
syscharset.id (collation method and character set, byte 5)

What more could we want to know? Country, language?

Do we care?

Regards,

--jkl


The information contained in this transmission may contain privileged and
confidential information and is intended only for the use of the person(s)
named above. If you are not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient, any
review, dissemination, distribution or duplication of this communication is
strictly prohibited. If you are not the intended recipient, please contact
the sender immediately by reply e-mail and destroy all copies of the
original message. Please note that we do not accept account orders and/or
instructions by e-mail, and therefore will not be responsible for carrying
out such orders and/or instructions.






Archive powered by MHonArc 2.6.24.

Top of Page