Hi *,
I encounter problem with following statements when working with Firebird ODBC 
driver:
(if this is not right place where ask such question please let me know)

1. I prepare statement with SQLPrepare. Statement is like:
   'insert into mytable values(?)'
   (table mytable has one BLOB column)

2. Then I use SQLBindParameter. Where I bind string f.e. '414243'
3. Then I use SQLExecute

2.1. When I set ValueType=SQL_C_BINARY and ParameterType=SQL_LONGVARBINARY all 
goes ok

2.2. But when I use for ValueType f.e.=SQL_C_CHAR and ParameterType=SQL_VARCHAR 
then data inserted into table are "corrupted" (in fact it is 'ABC', because 
driver interprets string like 0x41, 0x42, 0x43) ... it seems, that it performs 
translation.
(may be that int OdbcConvert::convStringToBlob is invoked)

But it is something what I do not expect ... also other ODBC drivers like 
PostgreSQL or MS SQL Server do not do that ... they simply insert  string 
'414243' as is.
Is this behavior intentional or is this some kind of side effect ?
Does conversion occurs on client side (in ODBC driver) or on server side ?

Thanks
-Laco.

Reply via email to