From 46682c3cc4ca0430845a3914cd48dfbe4837b467 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Sun, 11 Aug 2024 16:36:58 +0200 Subject: [PATCH] SqlsrvDriver: enables SQLSRV_ATTR_FORMAT_DECIMALS (BC break) --- src/Database/Drivers/Engines/SQLServerEngine.php | 2 -- src/Database/Drivers/PDO/SQLSrv/Driver.php | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Database/Drivers/Engines/SQLServerEngine.php b/src/Database/Drivers/Engines/SQLServerEngine.php index 54a1e5c05..2c07e0dd7 100644 --- a/src/Database/Drivers/Engines/SQLServerEngine.php +++ b/src/Database/Drivers/Engines/SQLServerEngine.php @@ -227,8 +227,6 @@ public function resolveColumnConverter(array $meta, TypeConverter $converter): ? return match ($meta['nativeType']) { 'timestamp' => null, // timestamp does not mean time in sqlsrv 'bit' => $converter->convertBoolean ? $converter->toBool(...) : null, - 'decimal', 'numeric', - 'double', 'double precision', 'float', 'real', 'money', 'smallmoney' => fn($value): float => (float) (is_string($value) && str_starts_with($value, '.') ? '0' . $value : $value), default => $converter->resolve($meta['nativeType']), }; } diff --git a/src/Database/Drivers/PDO/SQLSrv/Driver.php b/src/Database/Drivers/PDO/SQLSrv/Driver.php index 7f5d856e6..b51c82b99 100644 --- a/src/Database/Drivers/PDO/SQLSrv/Driver.php +++ b/src/Database/Drivers/PDO/SQLSrv/Driver.php @@ -33,6 +33,7 @@ public function connect(): Drivers\Connection { $connection = new Drivers\PDO\Connection(self::EngineClass, ...$this->params); $connection->metaTypeKey = 'sqlsrv:decl_type'; + $connection->pdo->setAttribute(\PDO::SQLSRV_ATTR_FORMAT_DECIMALS, true); return $connection; }