Bonjour,
Je suis à la recherche d'information concernant l'utilisation du module Mysql de Gnade.

J'ai créé une base de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 Id := Query(MySQL_Object, "create table Users (User_Id int AUTO_INCREMENT, Username Char(128), Date date, Password char(32), primary key (User_Id)) Engine = InnoDB;");
 
            Id := Query(MySQL_Object, "create table Woprs (Wopr_Id int AUTO_INCREMENT,  User_Id int not null, foreign key (User_Id) references Users(User_Id), X_Coordonate double not null, Y_Coordonate double not null, Total_Charge double, primary key (Wopr_Id)) Engine = InnoDB;");
 
            Id := Query(MySQL_Object, "create table Missils (Missil_Id smallint, Wopr_Id int not null, foreign key (Wopr_Id) references Woprs(Wopr_Id), Lunched boolean, X_Coordonate double not null, Y_Coordonate double not null,X_Target double not null, Y_Target double not null,  Charge double, primary key (Missil_Id, Wopr_Id)) Engine = InnoDB;");
Après je fais un Get_Field type qui lève Constraint Error à la ligne 883 de gnu-db-mysql.adb pour invalid data.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
                  Query_User_Id := Query(MySQL_Object,
                                         "select User_Id from Users where Username = """ & Logname & """;");
                  if Query_User_Id /= Null_Query_Id then
                     Text_Io.Put_line("Not Null Query Id");
                     if Nbr_Of_Rows(MySQL_Object, Query_User_Id) /= 0 then
                        Text_Io.Put_line("Get Field name");
                        Field_Name := new String ' (Get_Field_Name(MySQL_Object, Query_User_Id, 1));
                        Text_Io.Put_line("Field name := " & Field_Name.all);
 
                        Type_Of := Get_Field_Type(MySQL_Object, Query_User_Id, 1);
Je n'ai malheureusement aucune idée de mon erreur.
Merci pour votre aide.