Need Help with Unicode on ActivePerl 5.8.6, MS SQL 2000



Hello,

A large Perl application (10^4 .. 10^5 lines of code) has to work with data on an MS SQL Server 2000 containing Unicode data in NVARCHAR columns. Perl 5.8.6 (ActivePerl) runs on the same or another Windows 2000 Server (usually english or german). The Unicode data may contain characters from all over the world, e.g. russian, chinese, arabic or hebrew, among the usual latin characters. A separate application also accesses the Database, performs some reporting and expects the data to be valid Unicode.

DBD::ODBC returns all latin characters, german umlauts and french accents, but replaces all non-latin characters with question marks ("?", ASCII 63). Also, all data returned from DBD::ODBC has the UTF8 flag off.

Other DBDs for other databases, like DBD::Oracle for Oracle 9.2 and DBD::Pg (with pg_enable_utf8=1) for PostgreSQL 8 work fine and return unicode strings with an enabled UTF8 flag. Unfortunately, these two databases are not sufficient, the application has to work with MS SQL (not my idea).

DBD::ADO is unreliable, hangs and crashes, and seems to have a lot of limitations that make the application stop working, but at least it sets the UTF8 flag and returns unicode strings.

DBD::Sybase does not work at all, it complains about missing some entry points in Sybases DLLs, and the documentation says that "?" placeholders are not supported with MS SQL. All but two or three statements in the application use "?" placeholders.

I spent three days searching Google, DBI docs and FAQ, and DBI and DBD::ODBC sources for any hints, but without success.

Any ideas, hints, tips?


Thanks,
Alexander Foken


Please inform us immediately if this e-mail and/or any attachment was transmitted incompletely or was not intelligible.
___________________________________________________________________________


This e-mail and any attachment is for authorized use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. .



Relevant Pages

  • Re: DBD::ODBC and character sets
    ... Are you sure that is a "SQL Server 2008" statement? ... All I want to do is to process strings with special characters (e.g., ... DBD::ODBC is unicode built: YES ...
    (perl.dbi.users)
  • Re: DBD::ODBC and character sets
    ... Are you sure that is a "SQL Server 2008" statement? ... All I want to do is to process strings with special characters (e.g., ... DBD::ODBC is unicode built: YES ...
    (perl.dbi.users)
  • Re: cannot convert between unicode and non-unicode data types
    ... change the error message I am trying to go into a nvarchar on Sql and never ... product can't actually produce a meaningful error message. ... Tried dumping to a raw file but the output is still unicode when I try to ... new SSIS. ...
    (microsoft.public.sqlserver.dts)
  • Re: UNICODE Querys in Access und MSSQL
    ... > ich habe eine Access DB auf einen SQL Server portiert. ... > Gibt es eine UNICODE taugliche Syntax die auf beiden System geht? ... > Oder sind hier die Jet Engine und der SQL Server wiedereinmal verschieden? ...
    (microsoft.public.de.sqlserver)
  • Re: Thesaurus Problem
    ... be saved as a Unicode file. ... FROM FullDocuments ... Sql Server is starting fresh. ...
    (microsoft.public.sqlserver.fulltext)