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

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

am 09.10.2006 21:54:42 von Aspen Olmsted

------_SmarterMail_NextPart_7760657766201644
Content-Type: text/plain;
charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

I think I have reported the problem you are having with the odbc an=
d pdo and sql server under bug 38834. http://bugs.php.net/bug.php?id=
=3D38834 It should up to me with large columns of text but my gu=
ess is the same. As a temporary solution I am using adodb with s=
ql server but there is a bug with time zones which I have a modified versio=
n of adbdb if you want it. Aspen Olmsted Alliance Software =
Corporation 17 Pitt St Charleston SC, 29401 aspen.olmsted@al=
liance.biz -------------------------------------- -- =
From: "Mike Matz" Sent: Monday, October 09, 2=
006 12:48 PM To: php-windows@lists.php.net Subject: SPAM-LOW: [PH=
P-WIN] Unicode data w/ PDO DBLIB, MSSQL Is there currently any =
way to retrieve Unicode data from SQL Server? I'm working with SQL Ser=
ver Express 2005, on a database that's been restored from an old SQL S=
erver 2000 database. I'm writing a PHP script that imports data from t=
he 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 th=
ere 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 o=
n another method if this is impossible. I'm able to connect to my data=
base using either ODBC or DBLIB MSSQL drivers. When using DBLIB, I get=
an error: $db =3D new PDO('mssql:host=3D\\\\.\pipe\sql\query;db=
name=3Dmy_db', $user, $pass); $sth =3D $db->execute("SELECT * FRO=
M Products"); $sth->execute(); print_r($sth->fetchAl l()); =
gives me this exception: Fatal error: Uncaught exception '=
PDOException' with message 'SQLSTATE[HY000]: General error: 10007 Unic=
ode data in a Unicode-only collation or ntext data cannot be sent to c=
lients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.=
[10007] (severity 5) [(null)]' When using ODBC, I get very stra=
nge results. There are no errors or exceptions, but in every row, all =
columns following the first text/unicode column will be empty. For exa=
mple, if I SELECT Product_ID, Short_Description, Product_Season (Short=
_Description being TEXT, possibly with unicode), Product_Season will b=
e empty. However, if I SELECT Product_ID, Product_Season, Short_Descri=
ption -- I'll get the Product_Season. Short_Description is empty in bo=
th 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 s=
hould try? Thanks, Mike

------_SmarterMail_NextPart_7760657766201644--

Re: RE: SPAM-LOW: [PHP-WIN] Unicode data w/

am 10.10.2006 01:37:28 von frank

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@alliance.biz]
> Sent: Monday, October 09, 2006 12:55 PM
> To: Mike Matz; php-windows@lists.php.net
> Subject: re: SPAM-LOW: [PHP-WIN] 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@alliance.biz
>
>
> ________________________________
>
> From: "Mike Matz"
> Sent: Monday, October 09, 2006 12:48 PM
> To: php-windows@lists.php.net
> Subject: SPAM-LOW: [PHP-WIN] 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