public static function getInstance($conn)
{
$conn->setActive(true);
//must be connected before retrieving driver name
$driver = $conn->getDriverName();
switch (strtolower($driver)) {
case 'pgsql':
return new TPgsqlMetaData($conn);
case 'mysqli':
case 'mysql':
return new TMysqlMetaData($conn);
case 'sqlite':
//sqlite 3
//sqlite 3
case 'sqlite2':
//sqlite 2
return new TSqliteMetaData($conn);
case 'mssql':
// Mssql driver on windows hosts
// Mssql driver on windows hosts
case 'sqlsrv':
// sqlsrv driver on windows hosts
// sqlsrv driver on windows hosts
case 'dblib':
// dblib drivers on linux (and maybe others os) hosts
return new TMssqlMetaData($conn);
case 'oci':
return new TOracleMetaData($conn);
// case 'ibm':
// return new TIbmDb2MetaData($conn);
// case 'ibm':
// return new TIbmDb2MetaData($conn);
default:
throw new TDbException('ar_invalid_database_driver', $driver);
}
}