Bonjour à tous,

J'ai un probleme avec la gestion des resultats renvoyés par un 'select' dans un programme en c++ utilisant la biblioteque sqlite3.

Je realise une gestion de d'utilisateurs avec une classe.
Dans cette classe, j'ai un attribut contenant la tete d'une liste chainée d'utilisateurs.
Je réalise ma requete dans une methode de cette classe. Le hic, c'est que comme j'ai pu le voir à plusieurs endroits, je ne peux récupérer mon résultat qu'en faisant appel à une fonction callback.
Je n'arrive pas à faire 'communiquer' la tete de ma liste avec le résultat de mon select.

Je vous met les fonctions principales ici,

definition de la liste et de la classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
typdef struct Utilisateurs {
	string nom;
	struct Utilisateurs *next;
} Utilisateurs;
 
class mainWindow : public QMainWindow {
	public:
		mainWindow();
		void readDb();
 
	private:
		sqlite3 *m_db;
		struct Utilisateurs *m_teteListe;
 
};
la methode qui fait le select :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
void mainWindow::readDb() {
	int rc = sqlite3_open("data/db.sqlite", &m_db);
	if(rc){
		fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(m_db));
		sqlite3_close(m_db);
		exit(1);
	}
	char *err = 0;
	string sql;
 
	sql = "SELECT nom FROM utilisateurs;";
	rc = sqlite3_exec(m_db, sql.c_str(), callback, 0, &err);
	if(rc != SQLITE_OK) {
		QMessageBox::critical(this, "qsdfml", QString(err));
		sqlite3_free(err);
	}
}
la fonction ccallback :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
	int i;
	Utilisateurs *p = NULL, *q = NULL;
	p = new Utilisateurs;
 
	//Et la je voudrais tester si la tete de ma liste est NULL etc..
 
	return 0;
}
Je n'utilise pas la classe QSql de Qt car j'apprend à me servir de sqlite3 et je voudrais savoir l'utiliser n'importe ou (sans qt par ex).

Merci pour votre aide.