Skip to Content.
Sympa Menu

freetds - Re: [freetds] Unicode strings in queries

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Unicode strings in queries
  • Date: Thu, 17 Aug 2006 11:15:26 +0200

>
> Hello, everybody!
>
> I know that UNICODE issues have been discussed a lot in this
> mailing list,
> but I haven't managed to find solution to my particular
> problem, though I
> have rummaged about in all threads.
>
> I have C++ client working under FreeBSD and MS SQL. I call
> procedures from
> C++ client, which require NVARCHAR parameters. My client
> program operates
> with wide char strings (uses wchar_t and wstring). The
> problem is that I
> don't know how to build and execute query which contains wide char
> parameters.
>
> I need something like that:
>
> const wchar_t* query = L"EXEC SomeProc 'national_symbols_here'";
> tds_submit_query(query);
>
> But tds_submit_query expects only 1-byte strings, so I have
> no idea how to
> implement it.
>

libTDS work with multi-byte strings. It does not work with wide one
(like utf-16, ucs-2, ucs-4 and similar) but can work with unicode like
utf-8.

> I know TDS uses UCS-2 encoding in its protocol. I would be
> glad to convert
> all my strings to UCS-2 and pass it to FreeTDS functions but,
> again, I don't
> know how to do that.

Currently is not possible. However you can use utf-8 and lead libTDS do
the conversion.

> My program is supposed to be multi-language so I can't afford
> to myself to
> stick to one particular codepage. And the most convenient way
> to handle
> multi-language string is using wchar_t based strings.
>

Under Unix utf-8 is usually more convenient. It support more characters
than ucs-2 (which mostly use) and is better supported by the system (kde
and gnome for instance can speak utf8).
Support for any encoding is a todo but there is currently no plan.

> Have I missed any obvious solution to my problem? Or may be
> somebody knows
> some kind of workaround? I have already started to think
> about encoding all
> string parameters to Base64 and decoding them in database,
> and this way
> definitely looks UGLY for me.
>

Please don't :) My stomac is struggling...

> Thank you in advance,
> Kirill
>

freddy77





Archive powered by MHonArc 2.6.24.

Top of Page