2011年2月10日 星期四

Zend Framework連接Sybase

使用ZendFrame work時需在主機上安裝

dblib
 指定設定檔的

resources.db.adapter = "PDO_MSSQL"
resources.db.params.pdoType = "dblib"

在zend model update會發生型態問題

Implicit conversion from datatype 'VARCHAR' to 'INT' is not allowed


不知為什麼ZF不判斷型態





可透過
protected $_metadata = array(

  '' => array(
        'SCHEMA_NAME'      => ,
        'TABLE_NAME'       => ,
        'COLUMN_NAME'      => ,
        'COLUMN_POSITION'  => ,
        'DATA_TYPE'        => ,
        'DEFAULT'          => NULL|,
        'NULLABLE'         => ,
        'LENGTH'           => ,
        'SCALE'            => NULL|,
        'PRECISION'        => NULL|,
        'UNSIGNED'         => NULL|,
        'PRIMARY'          => ,
        'PRIMARY_POSITION' => ,
        'IDENTITY'         => ,
    ),
    // additional columns...
);
自行定義 metadata
或在data中使用SQL轉型
'sort_no' => new Zend_Db_Expr('convert(int,' . $sort_no . ') ')
Sybase轉型為int型態 
convert(int,' . $sort_no . ')

目前沒在mysql上發現問題,在Sybase卡了很久,使用settype()及(int)在PHP上轉型
進入ZF的update後!!都不行只好透過以上方法!! 

自動編號需使用identity

沒有留言: