Bonjour à tous,
Je retourne sur le forum après une petite année de silence. En effet, dans le but de compléter les fonctionnalités d'un logiciel de saisie de données généalogiques que j'avais conçu l'an passé, j'ai eu l'idée de vérifier les tables (SQLite 3) générées par ce logiciel, j'ai eu l'idée de faire afficher dans un "StringGrid" une liste simplifiée (Nom, Prénom, date de l'acte) pour chacune des 3 tables générées. Pour cela j'ai construit un mécanisme de sélection des infos à afficher (choox de la table par un groupe "boutons radio" et choix de l'année à vérifier par un "Tedit" et affichage par ordre alphabétique selon le nom des entrées effectuées, le tout avec lancement de la procédure par Click sur un bouton décdié. Ceci correspond au code suivant :
Ce code semble fonctionner correctement (aucune erreur à la compilation et lancement correct) mais après que le logicile ait tourné 2 ou 3 secondes un message s'affiche : "SQL Error - Database Schema has changed"
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
52
53
54
55 procedure TF_AcACG.Bt_AffichAnClick(Sender: TObject); Var ChoixAn, Nomtable, SQLSelaffich : String ; Var NomCol1, NomCol2, NomCol3, AnneeSel : String ; Var DirNomBase, Nombase0, DnomBase : String ; Var ChoixTable : Integer ; begin // Choix du type d'entrées à afficher ChoixAn := Ed_SelAn.text ; ChoixTable := Integer(RG_ChoixVerif.ItemIndex); Case ChoixTable of 0 : // Choix d'affichage --> Naissances Begin NomTable := 'Naissance' ; NomCol1 := 'NomEnft' ; NomCol2 := 'PrenomEnft' ; NomCol3 := 'DtActeN' ; AnneeSel := 'AnActN' ; end; 1 : // Choix d'affichage --> Décès Begin NomTable := 'Deces' ; NomCol1 := 'NomDCD' ; NomCol2 := 'PrenomDCD' ; NomCol3 := 'DtActeD'; AnneeSel := 'AnActDC' ; end; 2 : // Choix d'affichage --> Mariages Begin Nomtable := 'UnionMar'; NomCol1 := 'LuiNom' ; NomCol2 := 'LuiPrenom' ; NomCol3 := 'DtUnion'; AnneeSel := 'AnActU' ; end; end; //Connection à la base de données DirNomBase := Dir_CreeOuvre.Text ; NomBase0 := ED_NomBase.text ; DNombase := DirNomBase + '\' + NomBase0 + '.db3' ; F_AcACG.ZC_Affich.Connected := False ; F_AcACG.ZC_Affich.Database := Dnombase ; F_AcACG.ZC_Affich.Connected := True ; // Requête SQL de sélection des infos à afficher SQLSelAffich := 'Select ' + NomCol1 + ','+ NomCol2 + ',' + NomCol3 + 'From '+ NomTable ; SQLSelAffich := SQLSelaffich + 'Where ' + AnneeSel + ' = ' + QuotedStr(ChoixAn) ; SQLSelAffich := SQLSelAffich + ' Order by ' + NomCol1 ; // Exécution de la requête SQL et affichage dans un StringGrid F_AcACG.ZQ_Affich.Active := False ; F_AcACG.ZQ_Affich.SQL.Clear ; F_AcACG.ZQ_Affich.SQL.Text := SQLSelAffich ; F_AcACG.ZQ_Affich.Open ; end;
Quelqu'un a t-il une idée de ce que signifie ce message et comment y remédier
Merci
R.O.
Partager