Current Path : /var/www/www-root/data/webdav/www/www.monolith-realty.ru/bitrix/modules/main/lib/db/ |
Current File : /var/www/www-root/data/webdav/www/www.monolith-realty.ru/bitrix/modules/main/lib/db/mssqlresult.php |
<?php namespace Bitrix\Main\DB; class MssqlResult extends Result { /** @var \Bitrix\Main\ORM\Fields\ScalarField[] */ private $resultFields = null; /** * @param resource $result Database-specific query result. * @param Connection $dbConnection Connection object. * @param \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery Helps to collect debug information. */ public function __construct($result, Connection $dbConnection = null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery = null) { parent::__construct($result, $dbConnection, $trackerQuery); } /** * Returns an array of fields according to columns in the result. * * @return \Bitrix\Main\ORM\Fields\ScalarField[] */ public function getFields() { if ($this->resultFields == null) { $this->resultFields = array(); if (is_resource($this->resource)) { $fields = sqlsrv_field_metadata($this->resource); if ($fields && $this->connection) { $helper = $this->connection->getSqlHelper(); foreach ($fields as $value) { $name = ($value["Name"] <> ''? $value["Name"]: uniqid()); $parameters = array( "size" => $value["Size"], "scale" => $value["Scale"], ); $this->resultFields[$name] = $helper->getFieldByColumnType($name, $value["Type"], $parameters); } } } } return $this->resultFields; } /** * Returns the number of rows in the result. * * @return integer */ public function getSelectedRowsCount() { return sqlsrv_num_rows($this->resource); } /** * Returns next result row or false. * * @return array|false */ protected function fetchRowInternal() { return sqlsrv_fetch_array($this->resource, SQLSRV_FETCH_ASSOC); } }