Skip to content
Extraits de code Groupes Projets
Valider de8894ef rédigé par marcimat's avatar marcimat
Parcourir les fichiers

- donner à sqlite2 des sql_seek() fonctionnels

- donner à sqlite3 des sql_seek() fonctionnels aussi, mais lui, c'est très tordu, une nouvelle fois à cause des limitations de la classe PDO...
parent 203f3d76
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -621,18 +621,25 @@ function spip_sqlite_seek($r, $row_number, $serveur='',$requeter=true) { ...@@ -621,18 +621,25 @@ function spip_sqlite_seek($r, $row_number, $serveur='',$requeter=true) {
if ($r){ if ($r){
$link = _sqlite_link($serveur); $link = _sqlite_link($serveur);
if (_sqlite_is_version(3, $link)){ if (_sqlite_is_version(3, $link)){
if ($numrow==0) { // encore un truc de bien fichu : PDO ne PEUT PAS faire de seek ou de rewind...
return $r->rewind(); // je me demande si pour sqlite 3 il ne faudrait pas mieux utiliser
} else { // les nouvelles fonctions sqlite3_xx (mais encore moins presentes...)
return $r->seek($numrow);
// 1. on refait la requete = remise a zero
// 2. on boucle a n-1 d'ou on souhaite aller...
// (oui oui, c'est beau !)
$requete = new sqlite_traiter_requete($r->queryString, $serveur);
// pas besoin de traduire, ca a deja ete fait...
# $requete->traduire_requete(); // mysql -> sqlite
# if (!$requeter) return $requete->query;
$requete->executer_requete();
while ($row_number--) {
$x = $r->fetch();
} }
return true;
} }
else { else {
if ($numrow==0) { return sqlite_seek($r, $row_number);
return sql_rewind($result);
} else {
return sql_seek($result, $numrow);
}
} }
} }
} }
...@@ -1610,6 +1617,9 @@ class sqlite_traiter_requete{ ...@@ -1610,6 +1617,9 @@ class sqlite_traiter_requete{
if ($this->link){ if ($this->link){
if ($this->sqlite_version == 3) { if ($this->sqlite_version == 3) {
$r = $this->link->query($this->query); $r = $this->link->query($this->query);
// sauvegarde de la requete (elle y est deja dans $r->queryString)
# $r->spipQueryString = $this->query;
// comptage : oblige de compter le nombre d'entrees retournees // comptage : oblige de compter le nombre d'entrees retournees
// par une requete SELECT // par une requete SELECT
// aucune autre solution ne donne le nombre attendu :( ! // aucune autre solution ne donne le nombre attendu :( !
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter