Merge pull request #3426 from Icinga/feature/add-support-for-the-sqlsrv-extension-3320

Add support for the sqlsrv extension
This commit is contained in:
Eric Lippmann 2018-04-24 10:19:52 -04:00 committed by GitHub
commit 37aeb83cd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 5 deletions

View File

@ -345,14 +345,20 @@ class Platform
/**
* Return whether it's possible to connect to a MSSQL database
*
* Checks whether the mssql pdo extension has been loaded and Zend framework adapter for MSSQL is available
* Checks whether the mssql/dblib pdo or sqlsrv extension has
* been loaded and Zend framework adapter for MSSQL is available
*
* @return bool
*/
public static function hasMssqlSupport()
{
return (static::extensionLoaded('mssql') || static::extensionLoaded('pdo_dblib'))
&& static::classExists('Zend_Db_Adapter_Pdo_Mssql');
if ((static::extensionLoaded('mssql') || static::extensionLoaded('pdo_dblib'))
&& static::classExists('Zend_Db_Adapter_Pdo_Mssql')
) {
return true;
}
return static::extensionLoaded('sqlsrv') && static::classExists('Zend_Db_Adapter_Sqlsrv');
}
/**

View File

@ -139,14 +139,23 @@ class DbConnection implements Selectable, Extensible, Updatable, Reducible, Insp
switch ($this->dbType) {
case 'mssql':
$adapter = 'Pdo_Mssql';
$pdoType = $this->config->get('pdoType', 'dblib');
$pdoType = $this->config->get('pdoType');
if (empty($pdoType)) {
if (extension_loaded('sqlsrv')) {
$adapter = 'Sqlsrv';
} else {
$pdoType = 'dblib';
}
}
if ($pdoType === 'dblib') {
// Driver does not support setting attributes
unset($adapterParamaters['persistent']);
unset($adapterParamaters['options']);
unset($adapterParamaters['driver_options']);
}
$adapterParamaters['pdoType'] = $pdoType;
if (! empty($pdoType)) {
$adapterParamaters['pdoType'] = $pdoType;
}
$defaultPort = 1433;
break;
case 'mysql':