[freetds] Status of UTF-8 support in 0.83 dev

James K. Lowden jklowden at freetds.org
Wed Aug 13 00:37:03 EDT 2008


Sebastien FLAESCH wrote:
> 
> Log shows now:
> 
> log.c:190:Starting log file for FreeTDS 0.83.dev.20080812
>          on 2008-08-12 18:11:48 with debug flags 0x4fff.
> iconv.c:197:names for ISO-8859-1: ISO-8859-1
> iconv.c:197:names for UTF-8: UTF-8
> iconv.c:197:names for UCS-2LE: UCS-2LE
> iconv.c:197:names for UCS-2BE: UCS-2BE
> iconv.c:363:iconv to convert client-side data to the "UTF-8" character
> set iconv.c:516:tds_iconv_info_init: converting "UTF-8"->"UCS-2LE"
> iconv.c:516:tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"

Hi Sebastien, 

I modified the log messages from iconv.c to make them clearer.  HTH. 

> But still, I get:
> 
> 
> Error -1 at: SQLExecute 1.2 StmtH
> Diagnostic info:
>    SQL State: 42000
>    SQL code : 8005
>    Message  : [FreeTDS][SQL Server]The incoming tabular data stream
>    (TDS) remote procedure call (RPC) protocol stream is incorrect.
>    Parameter 4: The 
> parameter name is invalid.

This happens because of these errors in the log:

> query.c:1326:tds_put_data_info putting status 
> query.c:1420:tds_put_data: colsize = 9
> query.c:1449:tds_put_data: not null param varint_size = 2
> util.c:334:tdserror(0x98cb050, 0x98cc3d8, 2402, 0)
> odbc.c:2106:msgno 2402 20003
> util.c:368:tdserror: client library returned TDS_INT_CANCEL(2)
> util.c:389:tdserror: returning TDS_INT_CANCEL(2)
> query.c:1326:tds_put_data_info putting status 
> query.c:1420:tds_put_data: colsize = 9
> query.c:1449:tds_put_data: not null param varint_size = 2
> util.c:334:tdserror(0x98cb050, 0x98cc3d8, 2402, 0)
> odbc.c:2106:msgno 2402 20003
> util.c:368:tdserror: client library returned TDS_INT_CANCEL(2)
> util.c:389:tdserror: returning TDS_INT_CANCEL(2)
> util.c:162:Changed query state from QUERYING to PENDING
> net.c:768:Sending packet

The resulting sp_execute call is incorrectly formed, and the server
complains.  

2402 is TDSEICONVO and indicates an invalid multibyte input sequence was
encountered while sending data to the server.  

I'm too tired to debug it further.  I would guess the parameter data are
assumed to be in ISO-8859-1, not in the client's encoding.  

Regards, 

--jkl



More information about the FreeTDS mailing list