mrmitch/mssql-bundle-legacy

Symfony 2+ 的 Microsoft SQL Server Bundle

安装: 4

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 63

类型:symfony-bundle

3.0.0 2021-06-08 15:53 UTC

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 数据类型,该数据类型不会表现出这种行为。