Browse Source

Fix documentation

Walther Lalk 12 years ago
parent
commit
d9a6e4907f

+ 2 - 2
src/Database/Driver/Sqlserver.php

@@ -15,7 +15,7 @@
 namespace Cake\Database\Driver;
 
 use Cake\Database\Dialect\SqlserverDialectTrait;
-use Cake\Database\Statement\SqlServerStatement;
+use Cake\Database\Statement\SqlserverStatement;
 use PDO;
 
 /**
@@ -100,7 +100,7 @@ class Sqlserver extends \Cake\Database\Driver {
 	public function prepare($query) {
 		$this->connect();
 		$statement = $this->_connection->prepare((string)$query, [PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL]);
-		return new SqlServerStatement($statement, $this);
+		return new SqlserverStatement($statement, $this);
 	}
 
 }

+ 0 - 52
src/Database/Statement/SqlServerStatement.php

@@ -1,52 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: walther
- * Date: 2014/05/20
- * Time: 9:35 AM
- */
-
-namespace Cake\Database\Statement;
-
-use PDO;
-
-class SqlServerStatement extends PDOStatement {
-
-/**
- * Assign a value to an positional or named variable in prepared query. If using
- * positional variables you need to start with index one, if using named params then
- * just use the name in any order.
- *
- * You can pass PDO compatible constants for binding values with a type or optionally
- * any type name registered in the Type class. Any value will be converted to the valid type
- * representation if needed.
- *
- * It is not allowed to combine positional and named variables in the same statement
- *
- * ## Examples:
- *
- *    `$statement->bindValue(1, 'a title');`
- *    `$statement->bindValue(2, 5, PDO::INT);`
- *    `$statement->bindValue('active', true, 'boolean');`
- *    `$statement->bindValue(5, new \DateTime(), 'date');`
- *
- * @param string|int $column name or param position to be bound
- * @param mixed      $value  The value to bind to variable in query
- * @param string|int $type   PDO type or name of configured Type class
- *
- * @return void
- */
-	public function bindValue($column, $value, $type = 'string') {
-		if ($type === null) {
-			$type = 'string';
-		}
-		if (!ctype_digit($type)) {
-			list($value, $type) = $this->cast($value, $type);
-		}
-		if ($type == PDO::PARAM_LOB) {
-			$this->_statement->bindParam($column, $value, $type, 0, PDO::SQLSRV_ENCODING_BINARY);
-		} else {
-			$this->_statement->bindValue($column, $value, $type);
-		}
-	}
-} 

+ 45 - 0
src/Database/Statement/SqlserverStatement.php

@@ -0,0 +1,45 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link          http://cakephp.org CakePHP(tm) Project
+ * @since         3.0.0
+ * @license       http://www.opensource.org/licenses/mit-license.php MIT License
+ */
+namespace Cake\Database\Statement;
+
+use Cake\Database\Statement\PDOStatement;
+use PDO;
+
+/**
+ * Statement class meant to be used by an Sqlserver driver
+ *
+ */
+class SqlserverStatement extends PDOStatement {
+
+/**
+ * {$@inheritdoc}
+ *
+ * The SQL Server PDO driver requires that binary parameters be bound with the SQLSRV_ENCODING_BINARY attribute.
+ * This overrides the PDOStatement::bindValue method in order to bind binary columns using the required attribute.
+ */
+	public function bindValue($column, $value, $type = 'string') {
+		if ($type === null) {
+			$type = 'string';
+		}
+		if (!ctype_digit($type)) {
+			list($value, $type) = $this->cast($value, $type);
+		}
+		if ($type == PDO::PARAM_LOB) {
+			$this->_statement->bindParam($column, $value, $type, 0, PDO::SQLSRV_ENCODING_BINARY);
+		} else {
+			$this->_statement->bindValue($column, $value, $type);
+		}
+	}
+}