What SQL type for SQLBindParameter for NVARCHAR(MAX)/NTEXT when using UTF-8 locale?

Sebastien FLAESCH <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Organization Four Js Development Tools
Message-ID <[email protected]>
Hello,

I am using a UTF-8 encoding in my Linux FreeTDS client program,
and want to insert LOB data into NVARCHAR(MAX)/NTEXT columns.

For now, I bind the SQL Parameter with:

         ctype = SQL_C_CHAR;
         sqltype = SQL_LONGVARCHAR;
         precision = 0x10000000;

This works find as long as the data is ASCII (and probably also
ISO-885901), but when using UTF-8 sequences, I get this error:

SQL State: HY000
SQL code : 2402
[FreeTDS][SQL Server]Error converting characters into server's character set. Some character(s) could not be converted

I guess this is expected, because I use SQL_LONGVARCHAR...

For NCHAR/NVARCHAR types, I use SQL_WCHAR / SQL_WVARCHAR SQL types
to bind my UTF-8 buffers, and this works fine.

But for large objects, what SQL type should I use?

I tried with SQL_WVARCHAR and a large size, without success:

   [FreeTDS][SQL Server]Invalid string or buffer length

How to specify the precision for a CLOB?

As a comparison, with Easysoft SQL Server ODBC driver, you can bind
UTF-8 buffers with:

         ctype = SQL_C_CHAR;
         sqltype = SQL_WVARCHAR;
         precision = SQL_SS_LENGTH_UNLIMITED;

Thanks for reading, please let me know what I should use!

Seb
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.