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