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