2012-09-12 5 views
1

Comment créer un curseur et l'utiliser dans mon application iphone?comment créer et accéder à sqlite-cursor dans l'objectif c?

Je reçois plus de 10000 enregistrements en utilisant select * from tablename.

Mais je ne veux pas charger tous les enregistrements à la fois ... Je sais que nous pouvons utiliser le curseur pour cela.

Je ne suis pas en mesure de trouver des échantillons liés à ce .. tout corps peut donner un lien ou un échantillon qui explique comment utiliser le curseur dans sqlite?

Répondre

0

Je suis la solution: la requête SQL est

const char * sql = "select * from tablename";

utilisant

sqlite3_prepare_v2 (base de données, SQL, -1, & selectstmt, NULL)

nous aurons le résultat dans selectstmt.

maintenant à chaque fois que nous voulons aller chercher la ligne que nous appellerons la méthode

sqlite3_step (selectstmt)

, il retournera la ligne suivante à chaque fois que nous appelons.

+0

Cela ne résoudra pas la question que vous avez posée; Et si vous voulez les 10 dernières de vos 10 000 lignes? Vous allez faire un pas et ignorer 9,990 fois? Si tu le dis... – trojanfoe

2

Vous pouvez utiliser la clause LIMIT/OFFSET de l'instruction SELECT. Par exemple, pour obtenir les dossiers de 30 à 40:

SELECT something FROM somewhere ORDER BY somethingelse LIMIT 10 OFFSET 30; 

Votre dans ce cas « curseur » serait la valeur 30, vous devez vous suivre.

Reference.

+0

ne pouvons-nous pas utiliser le curseur comme dans mysql? – user1244311

+0

@ user1244311 Non, je ne pense pas que sqlite3 supporte les curseurs. – trojanfoe

+0

[curseur sqlite] (http://www.sqlite.org/vtab.html#xconnect) consultez cette fois ... à quoi est-ce lié. il y a une fonction comme "sqlite3_vtab_cursor" – user1244311

Questions connexes