. */ require_once 'creole/metadata/DatabaseInfo.php'; /** * MSSQL impementation of DatabaseInfo. * * @author Hans Lellelid * @version $Revision: 1.11 $ * @package creole.drivers.mssql.metadata */ class MSSQLDatabaseInfo extends DatabaseInfo { /** * @throws SQLException * @return void */ protected function initTables() { include_once 'creole/drivers/mssql/metadata/MSSQLTableInfo.php'; $dsn = $this->conn->getDSN(); $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME <> 'dtproperties'"; if (extension_loaded('sqlsrv')) { $result = sqlsrv_query($sql, $this->conn->getResource()); if (!$result) { throw new SQLException("Could not list tables", print_r(sqlsrv_errors(), true)); } while ($row = sqlsrv_fetch_array($result)) { $this->tables[strtoupper($row[0])] = new MSSQLTableInfo($this, $row[0]); } } else { if (!@mssql_select_db($this->dbname, $this->conn->getResource())) { throw new SQLException('No database selected'); } $result = mssql_query($sql, $this->conn->getResource()); if (!$result) { throw new SQLException("Could not list tables", mssql_get_last_message()); } while ($row = mssql_fetch_row($result)) { $this->tables[strtoupper($row[0])] = new MSSQLTableInfo($this, $row[0]); } } } /** * * @return void * @throws SQLException */ protected function initSequences() { // there are no sequences -- afaik -- in MSSQL. } }