Bug #53108 [Bgs]: Can't compile php_pdo_dlib NTS VC6
| From: | mikhail dot v dot gavrilov at gmail dot com | Date: | Thu, 21 Oct 2010 19:01:22 +0000 |
| Subject: | Bug #53108 [Bgs]: Can't compile php_pdo_dlib NTS VC6 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-155424@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53108&edit=1
ID: 53108
User updated by: mikhail dot v dot gavrilov at gmail dot com
Reported by: mikhail dot v dot gavrilov at gmail dot com
Summary: Can't compile php_pdo_dlib NTS VC6
Status: Bogus
Type: Bug
Package: PDO related
Operating System: Windows
PHP Version: 5.3.3
Block user comment: N
New Comment:
The controversial proposal, for me more important is application
correctly
working in * nix, than any special optimisation's for windows platform.
sqlsrv
can't give me single correctly working code for both platforms.
Previous Comments:
------------------------------------------------------------------------
[2010-10-21 20:09:07] pajoye@php.net
I will have to test or ask to test encoding and field names.
In any case, if you use a framework you should definitively rely on
SqlSrv (given that the encoding works or will be fixed if not). FreeTDS
won't make it on php for Windows.
------------------------------------------------------------------------
[2010-10-21 19:11:14] mikhail dot v dot gavrilov at gmail dot com
1) Example:
I have table wich fields names have CP1251 encoding
--Table: dbo.adres
CREATE TABLE dbo.adres (
[Column 0] varchar(50),
[СиÑÑемнÑй номеÑ] varchar(50),
[ФамилиÑ] varchar(50),
[ÐмÑ] varchar(50),
[ÐÑÑеÑÑво] varchar(50),
[ÐÐµÐ½Ñ ÑождениÑ] varchar(50),
[СÑок ÑегиÑÑÑаÑии] varchar(50),
[РегиÑÑÑаÑÐ¸Ñ Ð¸Ð»Ð¸
пÑебÑвание] varchar(50),
[Район] varchar(50),
[ÐоÑод] varchar(50),
[Село] varchar(50),
[УлиÑа] varchar(50),
[Ðом] varchar(50),
[ÐоÑпÑÑ] varchar(50),
[ÐваÑÑиÑа] varchar(50),
[ÐÐÐ ÑегиÑÑÑаÑии] varchar(50),
[ÐаÑпоÑÑ ÑеÑиÑ] varchar(50),
[ÐаÑпоÑÑ Ð½Ð¾Ð¼ÐµÑ] varchar(50),
[ÐÐРвÑдаÑи] varchar(50),
[ÐаÑа вÑдаÑи] varchar(50),
[Смена Ñамилии] varchar(50),
[ÐÑоÑие пÑиÑинÑ] varchar(50),
[ÐаÑа Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи] varchar(50),
[ÐаÑа пÑопиÑки] varchar(50),
[Ðид адÑеÑного лиÑÑка] varchar(50),
[Column 25] varchar(50)
)
GO
Microsoft data provider get all fields as is e.g. CP1251 it is wrong,
FreeTDS
convert to UTF-8 and it is true.
2) I wrote framework for developing banking application. In realization
FreeTDS
and MS provider i found many difference:
a) Freetds provider does not allow the use of attributes as:
PDO::ATTR_PERSISTENT...
b) Freetds provider does not allow use beginTransaction() in this case
better
overwrite this functions with selfs SQL framework realisation.
If FreeTDS will available on Windows platform, Windows fan boys know
about this
problem and write more compatible crossplatform code.
Sorry for offtopic.
---
I solve subject problem: For compilation php_pdo_bdlib.dll you must
build
dblib.lib, rename to sybdb.lib and put to build lib directory.
Good luck
------------------------------------------------------------------------
[2010-10-21 18:43:23] pajoye@php.net
1) is not correct, as far as I remember it does support UTF-8 for fields
too.
For 2), that's why PDO exists or Doctrine.
It is not our decisions to drop it. But I'm not willing to provide
freetds support on Windows. We don't have the resources for that (and
all the support it requires, given the pain it is to use ftds) and
SqlServer guys provide an out of the box driver and are very reactive to
any feature requests.
------------------------------------------------------------------------
[2010-10-21 18:38:07] mikhail dot v dot gavrilov at gmail dot com
FreeTDS provider better than driver from Microsoft.
Reasons:
1) Microsoft driver couldn't convert fieldnames to client's encoding.
2) FreeTDS better, because then easier to port Web applications to
Linux.
Please don't drop this data provider, I and many other open source
programmers
ready make donations for continues support.
M$ really sucks.
------------------------------------------------------------------------
[2010-10-20 11:32:14] pajoye@php.net
It is not something we provide. This data is not available anymore. We
also stoped to support these drivers on Windows in php 5.3 and later.
I would suggest to go with SqlSrv (http://sqlsrvphp.codeplex.com/) on
Windows, it supports PDO as well. Doctrine and many other projects
support it these days.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=53108
--
Edit this bug report at http://bugs.php.net/bug.php?id=53108&edit=1