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

"ZIGLIO, Frediano, VF-IT" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
> 
> Jason Young (Morgon) wrote:
> > perhaps it's simply a lack of NVARCHAR in the php_mssql 
> > library, but I cannot send UTF8 data to SQL Server using 
> > mssql_init/bind/execute - yet it's not a general fault in 
> my setup, as I
> > 
> > can "EXEC blah N'<UTF Text>'" just fine.
> 
> In the case of "EXEC blah N'<UTF Text>'", the data are 
> embedded in the SQL
> text, which is converted to UCS-2 in libtds just before it's 
> put on the
> wire.  I'm not sure what, if anything, "N'foo'" does for you; I would
> think "'foo'" would work just as well.  
> 
> In the case of dbrpcparam(), you're stuffing the data into a 
> buffer and
> telling the library the datatype. I'm not sure what happens 
> -- I haven't
> looked yet -- but *if* any conversion is done, it would be in libtds
> during dbrpcsend().  
> 
> 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

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