dabsquared/mssql-bundle

此包已被废弃,不再维护。未建议替代包。
此包最新版本(dev-master)没有提供许可证信息。

MsSQL服务器工作驱动程序

dev-master 2013-05-08 21:34 UTC

This package is not auto-updated.

Last update: 2020-08-21 18:16:21 UTC


README

isoft/mssql-bundle 添加到 composer.json

"require": {
    ....
    "isoft/mssql-bundle": "master-dev"
},

使用方法

config.yml 文件 doctrine - dbal 部分,添加选项 driver_class

doctrine:
    dbal:
        driver:         %database_driver%
        driver_class:   \Realestate\MssqlBundle\Driver\PDODblib\Driver

确保您的 %database_driver% 设置为 pdo_dblib

在 app/AppKernel.php 的 registerBundles() 方法中,添加以下行

$bundles = array(
    ...
    new Realestate\MssqlBundle\RealestateMssqlBundle(),
    ...
);

在 Doctrine\DBAL\DriverManager 的 $_driverMap 属性中,添加此驱动程序到列表

'pdo_dblib' => 'Realestate\DBAL\Driver\PDODblib\Driver',

此驱动程序需要版本 8.0(从 http://www.ubuntitis.com/?p=64),因为默认的 4.2 版本不支持 UTF

在 /etc/freetds/freetds.conf 文件中,将 tds version = 4.2 更改为 tds version = 8.0

不能使用 nvarchar!!

在 SQL 2000 SP4 或更高版本,SQL 2005 或 SQL 2008 中,如果您执行返回 NTEXT 类型数据的查询,可能会遇到以下异常:_mssql.MssqlDatabaseError: SQL Server 信息 4004,严重性 16,状态 1,行 1:Unicode 数据在只使用 Unicode 的排序规则或 ntext 数据不能发送到使用 DB-Library(如 ISQL)或 ODBC 版本 3.7 或更早版本的客户端。

这意味着由于 FTREETDS 的缺点,SQL Server 无法将 Unicode 数据发送到 FTREETDS。您必须将数据 CAST 或 CONVERT 到等效的 NVARCHAR 数据类型,该类型不会表现出这种行为。