Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před 11 měsíci

zahry
Nový člen
Registrovaný: 17. 4. 2010
Příspěvky: 8

Problem s fetch v MSSQL při přihlášení pře PDO

Po instalaci SqlSrv od Microsoftu se při přihlášení přes PDO

dibi::connect(array(
‚driver‘ ⇒ ‚pdo‘,
‚pdo‘ ⇒ new PDO(‚sqlsrv:server=‘ . $server . ‚;database=‘ . $database . ‚;‘, $name, $password)
));

se při dotazu

$session = dibi::select(‚*‘)
->from(‚table‘)
->where('')
->fetch();

se objevuje následující chyba

PDO or driver does not support applying limit or offset.

 

#2 před 6 měsíci

gavec
Člen
Registrovaný: 9. 1. 2011
Příspěvky: 43

Re: Problem s fetch v MSSQL při přihlášení pře PDO

Ahoj, taky jsem došel k tomuto problému. Vyřešil si to nějak prosím? Nebo ví někdo, jak fetch a fetchsingle zprovoznit při napojení přes PDO?

 

#3 před 6 měsíci

mr.mac
Člen
Registrovaný: 28. 9. 2011
Příspěvky: 48

Re: Problem s fetch v MSSQL při přihlášení pře PDO

Používám v Dibi vlastní driver sqlsrv.php, který jsem si jednoduše upravil ze stávajícího mssql.php, abych mohl v PHP 5.3 pracovat s MS SQL (2008 R2). Funkce fetch(), fetchSingle() a fetchAll() mi fungují v pohodě. Připojení však nepoužívám PDO.
Co se týče limit a offset, tak stejně jako autor mssql.php offset zatím implementován nemám, obcházím to takovou malou hrůzou v modelu – zbývá asi málo to dotáhnout do driveru:

public function pg_data($sql_cmd, $cond, $key='', $limit=0, $offset=0)
{
        if($limit==0 && $offset==0){
                $rslt = $this->connection->query("$sql_cmd WHERE $cond");
        } else {
                //implementace stránkování
                $page = (int) ($offset / $limit) + 1;
                $start = ($page - 1) * $limit + 1;
                $end = $page * $limit;
                $rw = "SELECT ROW_NUMBER() OVER(ORDER BY $key) AS RowNum, ";
                $sql_cmd = str_replace("SELECT ", $rw, $sql_cmd);
                $sql_cmd = "$sql_cmd WHERE $cond";
                $rslt = $this->connection->select("*")->from("($sql_cmd) tmp
                                                        WHERE tmp.RowNum BETWEEN $start AND $end");

        }
        return $rslt;
}

Editoval mr.mac (28. 11. 2011 21:53)

 

#4 před 4 měsíci

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5833

Re: Problem s fetch v MSSQL při přihlášení pře PDO

Tento problém by v poslední verzi být neměl.

 

Zápatí