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

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

 



The mssql extension comes in two different versions on Win32 systems.

php_mssql.dll and php_pdo_mssql.dll are compiled and linked with ntwdblib
from Microsoft

php_dblib.dll and php_pdo_dblib.dll are compiled and linked with FreeTDS.

The FreeTDS versions uses a more recent version of the protocol and allows
handling of unicode data as well as removing the 255 char limit on char and
varchar columns.

- Frank

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

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


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

  Powered by Linux