1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-05 21:58:10 +02:00

Merge pull request #83 from milo/sqlsrv-fixes

Sqlsrv fixes
This commit is contained in:
David Grudl
2013-04-11 02:37:46 -07:00
2 changed files with 9 additions and 2 deletions

View File

@@ -73,6 +73,9 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
$this->connection = $config['resource']; $this->connection = $config['resource'];
} else { } else {
// Default values
if (!isset($config['options']['CharacterSet'])) $config['options']['CharacterSet'] = 'UTF-8';
$this->connection = sqlsrv_connect($config['host'], (array) $config['options']); $this->connection = sqlsrv_connect($config['host'], (array) $config['options']);
} }
@@ -240,7 +243,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult
case dibi::IDENTIFIER: case dibi::IDENTIFIER:
// @see http://msdn.microsoft.com/en-us/library/ms176027.aspx // @see http://msdn.microsoft.com/en-us/library/ms176027.aspx
return '[' . str_replace(array('[', ']'), array('[[', ']]'), $value) . ']'; return '[' . str_replace(']', ']]', $value) . ']';
case dibi::BOOL: case dibi::BOOL:
return $value ? 1 : 0; return $value ? 1 : 0;

View File

@@ -285,6 +285,9 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver, IDibiResultDriver
case 'mssql': case 'mssql':
return '[' . str_replace(array('[', ']'), array('[[', ']]'), $value) . ']'; return '[' . str_replace(array('[', ']'), array('[[', ']]'), $value) . ']';
case 'sqlsrv':
return '[' . str_replace(']', ']]', $value) . ']';
default: default:
return $value; return $value;
} }
@@ -372,8 +375,9 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver, IDibiResultDriver
case 'odbc': case 'odbc':
case 'mssql': case 'mssql':
case 'sqlsrv':
if ($offset < 1) { if ($offset < 1) {
$sql = 'SELECT TOP ' . (int) $limit . ' * FROM (' . $sql . ')'; $sql = 'SELECT TOP ' . (int) $limit . ' * FROM (' . $sql . ') t';
break; break;
} }
// intentionally break omitted // intentionally break omitted