salut
dans ma base de donnes (firebird 2.5) j'ai les quatre tables suivantes :
Nom : Sans titre1.png
Affichages : 663
Taille : 13,8 Ko
voila le code de création des table:
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
 
CREATE TABLE ETUDIANTES (
  N_INSCRIPTION  INTEGER NOT NULL,
  NOM            VARCHAR(20),
  PRENOM         VARCHAR(20) CHARACTER SET NONE,
  /* Keys */
  CONSTRAINT ETUDIANTES_INDEX01
    PRIMARY KEY (N_INSCRIPTION)
);
 
CREATE TABLE MODULES (
  CODE_MODULE  VARCHAR(20) NOT NULL,
  NOM_MODULE   VARCHAR(20),
  /* Keys */
  CONSTRAINT MODULES_INDEX01
    PRIMARY KEY (CODE_MODULE)
);
CREATE TABLE SEMESTRES (
  CODE_SEMESTRE  VARCHAR(2) NOT NULL,
  /* Keys */
  CONSTRAINT SEMESTRES_INDEX01
    PRIMARY KEY (CODE_SEMESTRE)
);
 
CREATE TABLE RESULTATS (
  N_INSCRIPTION  INTEGER NOT NULL,
  CODE_MODULE    VARCHAR(20) NOT NULL,
  CODE_SEMESTRE  VARCHAR(2) NOT NULL,
  CONTROLE1      FLOAT,
  CONTROLE2      FLOAT,
  EXAMEN         FLOAT,
  OBSRVATION     VARCHAR(50),
  /* Keys */
  CONSTRAINT RESULTATS_INDEX01
    PRIMARY KEY (N_INSCRIPTION, CODE_MODULE, CODE_SEMESTRE),
  /* Foreign keys */
  CONSTRAINT RESULTATS_FOREIGN_KEY01
    FOREIGN KEY (N_INSCRIPTION)
    REFERENCES ETUDIANTES(N_INSCRIPTION)
    ON UPDATE CASCADE, 
  CONSTRAINT RESULTATS_FOREIGN_KEY02
    FOREIGN KEY (CODE_MODULE)
    REFERENCES MODULES(CODE_MODULE)
    ON UPDATE CASCADE, 
  CONSTRAINT RESULTATS_FOREIGN_KEY03
    FOREIGN KEY (CODE_SEMESTRE)
    REFERENCES SEMESTRES(CODE_SEMESTRE)
    ON UPDATE CASCADE
);
voila l'interface de la fiche :
Nom : Sans titre.png
Affichages : 446
Taille : 29,2 Ko


j'ai utilise le composant DBAdvGrid pour afficher les résultat de requête SQL suivante (le code source du bouton OK):
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
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with FDQuery1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select etud.*,res.CONTROLE1,res.CONTROLE2,res.EXAMEN,res.OBSRVATION ');
  SQL.Add(' from etudiantes etud');
  SQL.Add(' left join resultats res');
  SQL.Add(' ON etud.N_INSCRIPTION=res.N_INSCRIPTION');
  SQL.Add(' AND res.CODE_MODULE=:CODE_MODULE');
  SQL.Add(' AND res.CODE_SEMESTRE=:CODE_SEMESTRE');
  SQL.Add(' order by etud.N_INSCRIPTION');
  ParamByName('CODE_MODULE').value:=strtoint(ComboBox2.Text);
  ParamByName('CODE_SEMESTRE').value:=ComboBox1.Text;
  Open;
end;
TNumericField(FDQuery1.FieldByName('CONTROLE1')).DisplayFormat := '0#.00';
TNumericField(FDQuery1.FieldByName('CONTROLE2')).DisplayFormat := '0#.00';
TNumericField(FDQuery1.FieldByName('EXAMEN')).DisplayFormat := '0#.00';
end;
-Je voulais saisie les notes (CONTROLE1,CONTROLE2,EXAMEN) a partir du DBAdvGrid1 (Utilisation du DBAdvGrid1 pour la saisie des données )
l'option: goEditing est défini sur true dans DBAdvGrid1.Options et DBAdvGrid1.PageMode = true

mon problème est dans DBAdvGrid:
-Lorsque je modifie dans les colonnes suivantes: (N_INSCRIPTION,NOM,PRENOM) la modification réussit (Je peux les modifier sans aucun problème)
-mais les colonnes (CONTROLE1,CONTROLE2,EXAMEN,OBSRVATION) ne son pas éditables (Quand j'appuie deux fois avec la souris par exemple sur la cellule du colonne CONTROLE1 Rien n'apparaît Je ne peux rien écrire).

pour quoi les trois premières colonnes son éditable mais les colonnes (CONTROLE1,CONTROLE2,EXAMEN,OBSRVATION) ne son pas éditables ?

Comment résoudre le problème de la saisie des Notes?
Merci pour votre aide