Bonjour à tous,

Je suis désolé de revenir sur un problème déjà ressassé mais dont je n'arrive pas à trouver la solution bien que j'aie déjà fait ce genre de choses. Je cherche à entrer des données dans une base SQLITE3 (Lazarus version 1.6.4.- Windows10 -Zeos 1.7.4 Stable paquets mis à jour par GVasseur).
Je veux accéder à une base SQLITE3 pour y ajouter des enregistrements. La base a été créée auparavant par code sans problème. Pour cela je dispose de 3 composants :
un Composant TZConnection (ZC_InfoPromo), un composant TZ_QUERY (ZQ_InfoPromo) et un DataSource (DataSEcoPromo). Devant renseigner 3 tables de la base, j'ai construit, en faisant appel à un "RadioGroup" le code suivant :

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
 
procedure TF_InfoPromo.Bt_OKEcolPromoClick(Sender: TObject);
    Var MessOuv : String ;
    Var TablTravail : String ;
    Var ChoixTablactiv : String ;
    Var FlagOuvTbl : String ;
begin
   BaseActive := F_GestBase.Ed_BaseActive.Text ;
   Ed_FlagMsg.Text := 'Coucou !' ;
   FlagOuvTbl := 'OuvrNon' ;
 
 
    Try ;
        Case (RG_ChoixTbl1.ItemIndex) of
          0: Begin ;  // Instructions pour la table Ecole
          ChoixTablactiv := 'Select * From Ecole'  ;
          TablTravail :=  'Ecole' ;
          FlagOuvTbl := 'OuvrOui' ;
             End;
          1: Begin ;  // Instructions pour la table InfoPromo
          ChoixTablactiv := 'Select * From InfoPromo' ;
          TablTravail := 'Promo' ;
          FlagOuvTbl := 'OuvrOui' ;
             End;
           2: Begin ;  // Instructions pour la table Sections
          ChoixTablactiv := 'Select * From section' ;
          TablTravail := 'Sections' ;
          FlagOuvTbl := 'OuvrOui' ;
             End;
          End ;
            // *** Instructions d'accès à la Base à traiter
            if(FlagOuvTbl = 'OuvrOui') Then
               Begin
                 // base à traiter
                 ZC_EcoPromo.Connected:= False ;
                 ZC_EcoPromo.Database:= BaseActive ;
                 ZC_EcoPromo.Connected:= True ;
                 Ed_FlagMsg.Text := TablTravail;
                 // ****  Accès aux tables
                 ZQ_EcoPromo.Active := False ;
                 ZQ_EcoPromo.Connection := ZC_EcoPromo;
                 ZQ_EcoPromo.DataSource := DataSEcoPromo;
                 ZQ_EcoPromo.Active := False ;
                 ZQ_EcoPromo.SQL.Clear ;
                 ZQ_EcoPromo.SQL.Text := ChoixTablActiv  ;
                 ZQ_EcoPromo.ExecSQL ;
                 Ed_FlagMsg.Text := TablTravail ;
                 F_GestBase.visible := False ;
               end;
       Except
           MessOuv := 'Problème d''accès à la table ' + TablTravail  + ' de la base' + #13 + BaseActive ;
           ShowMessage (MessOuv) ;
    End;
End;
Sachant que le DataSource correspondant à valeur Dataset à ZQ_EcoPromo
A l’exécution de ce code, J'accède bien aux contrôles à renseigner mais aucune lise à jour des enregistrements n'est effectuée. Les datasets sont inactifs. SI au lieu d'utiliser

j'utilise

j'ai une erreur SIGSEGV qui s'affiche.
Je dois donc avoir omis de déclarer comme active la table à renseigner mais comment faire ?

Merci de vos réponses.

R.O.