SQLite Requetes sur les dates
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:
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:
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:
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