Bonjour, dans mon programme je crée une table et ensuite je transfère des données sur cette table!
Voici le code en entier:

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
procedure TForm1.ValiderArbo(Sender: TObject);
var
Nom_Arbo: string[30];
begin
  Nom_Arbo := 'arbo_' + IDLoco_Edit.Text;
    WITH DataModule1.MyQArbo DO
    BEGIN
      SQL.Clear;
      SQL.Add('CREATE TABLE '+ Nom_Arbo +' (           ');
      SQL.Add('ID_Engin_FK3 VARCHAR( 15 ) NOT NULL , ');
      SQL.Add('Module_N1 VARCHAR( 40 ) NOT NULL ,    ');
      SQL.Add('Module_N2 VARCHAR( 50 ) NOT NULL ,    ');
      SQL.Add('Module_N3 VARCHAR( 60 ) NOT NULL ,    ');
      SQL.Add('Module_N4 VARCHAR( 60 ) NOT NULL ,    ');
      SQL.Add('Module_N5 VARCHAR( 60 ) NOT NULL ,    ');
      SQL.Add('Module_N6 VARCHAR( 60 ) NOT NULL ,    ');
      SQL.Add('Code_Piece VARCHAR( 25 ) NOT NULL ,   ');
      SQL.Add('Nb_Piece SMALLINT NOT NULL ,          ');
      SQL.Add('Nom_Pas_FK1 VARCHAR( 15 ) NOT NULL ,  ');
      SQL.Add('Operation_M VARCHAR( 25 ) NOT NULL ,  ');
      SQL.Add('Prix FLOAT NOT NULL ,                 ');
      SQL.Add('MTBF FLOAT NOT NULL ,                 ');
      SQL.Add('Duree_Operation FLOAT NOT NULL ,      ');
      SQL.Add('Nb_MOE INT NOT NULL ,                 ');
      SQL.Add('Cout_Conso FLOAT NOT NULL ,           ');
      SQL.Add('Index_FL_FK1 VARCHAR( 30 ) NOT NULL   ');
      SQL.Add(') TYPE = innodb;                        ');
      Execute;
    END;
    WITH DataModule1.MyQArbo DO
      BEGIN
        SQL.clear;
        SQL.add('INSERT INTO '+ Nom_Arbo +'');
        SQL.Add('SELECT * FROM id_mc_d');
        Execute;
      END;
end;

et j'ai une erreur du type EMyError : "Column Count doesn't match value count at row 1"

Bizarre non?