Bonjour à tous

Je vous explique mon problème

Je possède une table

Article (idArticle int (Clé primaire), DateArticle varchar, TitreArticle varchar, LienArticle varchar, MediaArticle int (clé étrangère sur l'id d'une table Media)).

J'aimerais sur cette table extraire les couples dinstincts de Mois et d'année

J'ai donc dans SQLiteManager exécuter cette requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT DISTINCT strftime('%m', DateArticle) AS Mois, strftime('%Y', DateArticle) AS Annee FROM Article
La requête me renvoit bien ce que je veux.

Or, dès que je l'insère dans mon programme C++ Builder j'ai une erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Le projet à déclenché la classe d'exception EDatabaseError avec le message [0x0005] Opération non supportée.
Je ne comprend pas d'où peut venir le problème :
L'erreur est marquée sur la ligne qui teste le Nombre d'enregistrement

Voici mon code

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
	// on crée la liste des Mois et Annees
	TList *ListeMoisAnnees = new TList();
 
	// On va sélectionner les Mois et Années des Articles
	String Requete = "SELECT DISTINCT strftime('%m', DateArticle) AS Mois, strftime('%Y', DateArticle) AS Annee";
	Requete += " FROM Article";
 
	ShowMessage(Requete);
 
	// on va récupérer la liste des Media
	SQLQuery->SQL->Text = Requete;
 
	// On ouvre la requete
	SQLQuery->Open();
 
	// S'il y a au moins un enregistrement
	if(SQLQuery->RecordCount > 0)
	{
		// On se positionne sur le premier enregistrement
		SQLQuery->First();
 
		do
		{
			// on crée le MoisAnnee
			TMoisEtAnnee *MoisAnnee = new TMoisEtAnnee();
 
			// On récupère le Champ Mois
			TStringField *FieldMois = (TStringField *)(SQLQuery->FieldByName("Mois"));
 
			// On mémorise le champ
			MoisAnnee->Mois = FieldMois->Value.ToInt();
 
			// on récupère le Champ Annee
			TStringField *FieldAnnee = (TStringField *)(SQLQuery->FieldByName("Annee"));
 
			// On mémorise l'année
			MoisAnnee->Annee = FieldAnnee->Value.ToInt();
 
			// On ajoute le MoisAnnee dans la liste des MoisAnnée
			ListeMoisAnnees->Add(MoisAnnee);
 
			// On passe au suivant
			SQLQuery->Next();
		}
		// Tant que l'on a pas traité tous les enregistrements
		while(!SQLQuery->Eof);
 
		// on ferme la requete
		SQLQuery->Close();
	}
Merci d'avance pour votre aide