RE: SPAM-LOW: [PHP-WIN] Unicode data w/ PDO DBLIB, MSSQL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



		It is using ado instead of the old sql driver

----------------------------------------

				From: "Mike Matz" <mmatz@xxxxxxxxxxxxx>
Sent: Monday, October 09, 2006 3:07 PM
To: aspen.olmsted@xxxxxxxxxxxx>, <php-windows@xxxxxxxxxxxxx
Subject: RE: SPAM-LOW: [PHP-WIN] Unicode data w/ PDO DBLIB, MSSQL 

						Does ADOdb MSSQL driver solve this problem whereas the standard mssql_* functions don't?  I thought ADOdb was just an abstraction layer, but perhaps there are some different mechanisms or settings it uses that resolve the issue I'm having? 

----------------------------------------

						From: Aspen Olmsted [mailto:aspen.olmsted@xxxxxxxxxxxx] 
Sent: Monday, October 09, 2006 12:55 PM
To: Mike Matz; php-windows@xxxxxxxxxxxxx
Subject: re: SPAM-LOW:  Unicode data w/ PDO DBLIB, MSSQL

		I think I have reported the problem you are having with the odbc and pdo and sql server under bug 38834.
http://bugs.php.net/bug.php?id=38834

It should up to me with large columns of text but my guess is the same.

As a temporary solution I am using adodb with sql server but there is a bug with time zones which I have a modified version of adbdb if you want it.

Aspen Olmsted
Alliance Software Corporation
17 Pitt St
Charleston SC, 29401
aspen.olmsted@xxxxxxxxxxxx

----------------------------------------

				From: "Mike Matz" <mmatz@xxxxxxxxxxxxx>
Sent: Monday, October 09, 2006 12:48 PM
To: php-windows@xxxxxxxxxxxxx
Subject: SPAM-LOW:  Unicode data w/ PDO DBLIB, MSSQL 

Is there currently any way to retrieve Unicode data from SQL Server?
I'm working with SQL Server Express 2005, on a database that's been
restored from an old SQL Server 2000 database. I'm writing a PHP script
that imports data from the MSSQL database, processes it, and adds it to
a MySQL database with a different schema. So far I've been unable to do
this reliably, as there is a lot of multilingual, Unicode data in the
MSSQL database. I'm trying to use the PDO method of database access,
but could fall back on another method if this is impossible. I'm able
to connect to my database using either ODBC or DBLIB MSSQL drivers.
When using DBLIB, I get an error:

$db = new PDO('mssql:host=\\\\.\pipe\sql\query;dbname=my_db', $user,
$pass);
$sth = $db->execute("SELECT * FROM Products");
$sth->execute();
print_r($sth->fetchAll());

gives me this exception:

Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]: General error: 10007 Unicode data in a Unicode-only
collation or ntext data cannot be sent to clients using DB-Library (such
as ISQL) or ODBC version 3.7 or earlier. [10007] (severity 5) [(null)]'

When using ODBC, I get very strange results. There are no errors or
exceptions, but in every row, all columns following the first
text/unicode column will be empty. For example, if I SELECT Product_ID,
Short_Description, Product_Season (Short_Description being TEXT,
possibly with unicode), Product_Season will be empty. However, if I
SELECT Product_ID, Product_Season, Short_Description -- I'll get the
Product_Season. Short_Description is empty in both cases (even if it's
not empty when viewing with SQL Query Analyzer).

Has anyone seen this behavior or have any ideas as to what I should try?

Thanks,
Mike



[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux