/** * Connect to a AS400 DB2 SQL server via ODBC driver * * @throws Error on misconfigured or anavailable server * * @return void */ static function connect() { if (self::$dbh) { return; } $config = CAppUI::conf("sante400"); if (null == ($dsn = $config["dsn"])) { trigger_error("Data Source Name not defined, please configure module", E_USER_ERROR); CApp::rip(); } // Fake data source for chrono purposes CSQLDataSource::$dataSources[$dsn] = new CMySQLDataSource(); $ds =& CSQLDataSource::$dataSources[$dsn]; $ds->dsn = $dsn; self::$chrono =& CSQLDataSource::$dataSources[$dsn]->chrono; self::$chrono->start(); $prefix = $config["prefix"]; try { self::$dbh = new PDO("{$prefix}:{$dsn}", $config["user"], $config["pass"]); self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { mbTrace("cauguht failure on first datasource"); if (null == ($dsn = $config["other_dsn"])) { throw $e; } self::$dbh = new PDO("{$prefix}:{$dsn}", $config["user"], $config["pass"]); self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } self::$chrono->stop("connection"); self::traceChrono("connection"); }