Re: Using PHP mssql_init/bind for sending Unicode to Stored Procedures

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
ZIGLIO, Frediano, VF-IT wrote:
> > It's a little tricky because dbrpcparam() accepts VARCHAR and NVARCHAR
> > parameters. The libtds function that reads the parameter buffer must
> > distinguish between (VAR)CHAR, which should be converted, and 
> > N(VAR)CHAR,
> > which is by definition UCS-2 (and doesn't need to be and can't be
> > converted).  
> > 
> > src/dblib/unittests/rpc.c needs to be enhanced to test this 
> > feature, to
> > make sure we get it right.  Patches welcome!  
> > 
> 
> I think that dblib does not support wide characters... but we can extend
> it

db-lib makes some ASCII-ish assumptions.  dbrpcsend() should respect the
client charset, though.  If the datatype is SYBCHAR, dbrpcsend() should
convert from the client's charset to the server's charset.  That's true
even if the client charset is UTF-8.  

The conversion should happen in libtds, in a routine shared by ODBC and
db-lib, probably tds_submit_rpc().  That's as far as I got.  

--jkl
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.