Yii + Mssql 2000 進入 Gii 的 Model Generator 出現錯誤

我在 XAMPP-1.7.3 + YII-1.1.13 + MSSQL 2000 環境實作,已在 phpinfo() 內確認 mssql 與 pdo_mssql 都有

建立 YII 專案後,修改 protected\config\main.php 的資料庫設定,並開啟 GII 功能




'db'=>array(

  'connectionString' => 'mssql:host=dbs1;dbname=DEMODB;',

  'username' => 'DEMOUSER',

  'password' => 'DEMOPASS',

),



然後登入 GII 進入 Model Generator 出現錯誤如下列圖

4501

CDbException_2013-07-08_13-24-44.png

4503

CDbException_2013-07-08_13-24-52.png

4504

CDbException_2013-07-08_13-24-57.png

4505

CDbException_2013-07-08_13-25-02.png

我有使用 MSSQL 的 Profiler 工具檢查,可以看到有連接到資料庫執行SQL命令

所以不是連線上的問題,如下圖:

4506

dbs1_2013-07-08_14-32-53.png

這是因為 CMssqlSchema class 在呼叫 findColumns() 解析資料表的欄位時

所使用的 SQL 語法中用了 sys.extended_properties 這個系統 view

而 sys.extended_properties 在 MSSQL 2000 版中沒有

要到 MSSQL 2005 才開始有此 view

雖然在 The Definitive Guide to Yii 官網文件中提到資料庫有支援 Microsoft SQL Server 2000 or later

但是事實上只能從 2005 版開始

微軟資料 sys.extended_properties (Transact-SQL)