Show
Ignore:
Timestamp:
10/02/08 01:00:33 (3 months ago)
Author:
nowelium
Message:

fix:procedure & transaction scripts

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/php/misc/Hermit/src/Hermit/statement/HermitProcedureStatementBuilder.php

    r20387 r20417  
    88    private $annote; 
    99    private $sqlCreator; 
     10 
     11    protected static $procedureParameters = array( 
     12        'mysql' => 'HermitMySqlProcedureParameter' 
     13    ); 
     14 
    1015    public function __construct(ReflectionMethod $method, HermitAnnote $annote, HermitSqlCreator $sqlCreator){ 
    1116        $this->method = $method; 
     
    1520 
    1621    public function build(PDO $pdo){ 
    17         $this->checkProcedureParameter(); 
     22        self::checkProcedureParameter($this->method); 
    1823 
    1924        $procedureName = $this->annote->getProcedure($this->method); 
     
    2227 
    2328        $dbms = HermitDatabaseMetaFactory::getDbms($pdo); 
    24         $parameter = new HermitProcedureParameter($info, $dbms); 
     29        $parameter = null; 
     30        if(isset(self::$procedureParameters[$dbms])){ 
     31            $className = self::$procedureParameters[$dbms]; 
     32            $parameter = new $className($info, $dbms); 
     33        } else { 
     34            $parameter = new HermitProcedureParameter($info, $dbms); 
     35        } 
    2536        $sql = $this->sqlCreator->createSql($pdo); 
    2637        $sql = self::preparedSql($parameter, $sql); 
     
    2839    } 
    2940     
    30     protected function checkProcedureParameter(){ 
    31         $parameters = $this->method->getParameters(); 
     41    protected function checkProcedureParameter(ReflectionMethod $method){ 
     42        $parameters = $method->getParameters(); 
    3243        $count = count($parameters); 
    3344        if(1 < $count){