mrmitch / mssql-bundle-legacy
Symfony 2+ 的 Microsoft SQL Server Bundle
Requires
This package is auto-updated.
Last update: 2024-09-08 23:12:52 UTC
README
realestate.co.nz 仍然使用这个bundle,但它是在逐步淘汰的旧代码中。这个bundle的功能有限,已经被 Doctrine SQLServer 支持 所替代。
如果您需要 Doctrine DBLib 驱动,可以使用类似 https://packagist.org.cn/packages/leaseweb/doctrine-pdo-dblib 的驱动。
如果您希望继续使用这个库,您可以将其分支出来并自行维护。这个bundle将不再进行进一步的开发。
安装
步骤 1. 安装 MssqlBundle
将 realestate/mssql-bundle 添加到 composer.json
"require": {
....
"realestateconz/mssql-bundle": "master-dev"
},
然后运行
$ php composer.phar install
步骤 2. 配置 DBAL 的连接以使用 MssqlBundle
在 config.yml 中,删除 "driver" 参数,并添加 "driver_class" 替代
doctrine:
dbal:
default_connection: default
connections:
default:
driver_class: Realestate\MssqlBundle\Driver\PDODblib\Driver
host: %database_host%
dbname: %database_prefix%%database_name%
user: %database_user%
password: %database_password%
步骤 3. 启用 bundle
最后,在 kernel 中启用 bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Realestate\MssqlBundle\RealestateMssqlBundle(), ); }
注意
先决条件
此驱动需要版本 8.0(从 http://www.ubuntitis.com/?p=64),因为默认的 4.2 版本不支持 UTF 支持
在 /etc/freetds/freetds.conf 中,将 tds version = 4.2 改为 tds version = 8.0
NVARCHAR & NTEXT 数据类型
NVARCHAR & NTEXT 不受支持。在 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 数据类型,该数据类型不会表现出这种行为。