mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/10858] Fix MSSQL Native's row seeking behavior
The result_mssqlnative class remains in case someone wants to use it PHPBB3-10858
This commit is contained in:
parent
c0718fae96
commit
e52d23848a
1 changed files with 28 additions and 3 deletions
|
@ -447,14 +447,39 @@ class dbal_mssqlnative extends dbal
|
||||||
{
|
{
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
|
if ($query_id === false)
|
||||||
|
{
|
||||||
|
$query_id = $this->query_result;
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($cache->sql_rowset[$query_id]))
|
if (isset($cache->sql_rowset[$query_id]))
|
||||||
{
|
{
|
||||||
return $cache->sql_rowseek($rownum, $query_id);
|
return $cache->sql_rowseek($rownum, $query_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$seek = new result_mssqlnative($query_id);
|
if ($query_id === false)
|
||||||
$row = $seek->seek($rownum);
|
{
|
||||||
return ($row = $seek->fetch()) ? $row : false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->sql_freeresult($query_id);
|
||||||
|
$query_id = $this->sql_query($this->last_query_text);
|
||||||
|
|
||||||
|
if ($query_id === false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We do not fetch the row for rownum == 0 because then the next resultset would be the second row
|
||||||
|
for ($i = 0; $i < $rownum; $i++)
|
||||||
|
{
|
||||||
|
if (!$this->sql_fetchrow($query_id))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue