Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
772 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  [Ada][SGBD][Gnade][Mysql]Galère avec Gnade.MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Ada][SGBD][Gnade][Mysql]Galère avec Gnade.MySQL

n°2097841
Profil sup​primé
Posté le 26-08-2011 à 22:48:34  answer
 

Bonjour, bonsoir,
Je galère avec Gnade.MySQL...
 
J'ai deux tables Users, Wopr, dans Users, les champs User_Id int et Username char(128), et dans Wopr les champs Wopr_Id et User_Id.
Je veux faire ça, pour tester si un wopr existe.

Code :
  1. SELECT * FROM Woprs WHERE User_Id = (SELECT User_Id FROM Users WHERE Username = "Manuel De Girardi" );


 
Voici ce que j'ai fait.

Code :
  1. -- Connection, bon ça ça marche.
  2. My_Password := Hidden_Get_Line;
  3. Initialize(This => MySQL_Object);
  4. User(MySQL_Object, "root" );
  5. Password(MySQL_Object, My_Password.all);
  6. Connect   (This => MySQL_Object,
  7.                 Server => "localhost",
  8.                   DB => Db_name);
  9.  
  10. -- après je scinde une requête qui pourait se faire en une mais ça marche pas non plus.
  11. -- alors, du coup je galère pour récupéré le résultat de la première requête.
  12.  
  13. declare
  14.       Id : Query_Id := Null_Query_Id;
  15.       Query_User_Id : Query_Id := Null_Query_Id;
  16.       User_Id : Integer;
  17.       Field_Name : String_Access;
  18. begin
  19.  
  20.                  Query_User_Id := Query(MySQL_Object,
  21.                                         "select User_Id from Users where Username = """ & Logname & """;" );
  22.                  
  23.                  if Query_User_Id /= Null_Query_Id then
  24.                     Text_Io.Put_line("Not Null Query Id" );
  25.                     if Get_Field_Length(MySQL_Object, Query_User_Id, "User_Id" ) /= 0 then
  26.                        Text_Io.Put_line("Get User_Id" );
  27.                        Field_Name := new String ' (Get_Field_Name(MySQL_Object, Query_User_Id, 1));
  28.                        Text_Io.Put_line("Field name := " & Field_Name.all);
  29.                        Text_Io.Put_line("User_Id done" );
  30.  
  31.  
  32.                        -- Ca fonctionne jusqu'ici.
  33.  
  34.                        --Next(MySQL_Object, Query_User_Id);                                                                  
  35.                        User_Id := Integer_Field(MySQL_Object, Query_User_Id, Field_Name.all);  -- ici ça plante.
  36.                        Id := Query(MySQL_Object, "select * from Woprs where User_Id = " &
  37.                                      Natural'Image(User_Id) & ";" );
  38.                        if Id /= Null_Query_Id then
  39.                           Exist := True;
  40.                           Drop_Query(MySQL_Object, Id);
  41.                        else
  42.                           Exist := False;
  43.                        end if;
  44.                     end if;
  45.                     Drop_Query(MySQL_Object, Query_User_Id);
  46.                  else
  47.                     Text_Io.Put_line("Null query_id" );
  48.                     Exist := False;
  49.                  end if;
  50.       end;


 
Et puis je me demande en plus dans le cas d'un résultat de plusieurs ligne comment distinguer les ligne.
Merci pour votre aide.
 
Edit : j'ai édité les commentaire, je m'éttais planté de ligne, désolé.  :jap:


Message édité par Profil supprimé le 26-08-2011 à 22:58:10
mood
Publicité
Posté le 26-08-2011 à 22:48:34  profilanswer
 

n°2097859
Profil sup​primé
Posté le 27-08-2011 à 00:00:35  answer
 

Même Get_Field_Type plante, il lève Constraint_Error :/

n°2097877
Profil sup​primé
Posté le 27-08-2011 à 09:11:15  answer
 

Après investigation, c'est à la ligne 883 de gnu-db-mysql.adb que l'exception Constraint error est levé pour "invalid data".
Alors, là, moi je sèche.


Message édité par Profil supprimé le 27-08-2011 à 09:23:45
n°2097972
Profil sup​primé
Posté le 28-08-2011 à 10:59:44  answer
 

Finalement, je fais mon propre gestionnaire de données, on va pas chipoter pour trois tables.
 
Mais si vous trouvez un truc, merci... Ca servira certainnement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  [Ada][SGBD][Gnade][Mysql]Galère avec Gnade.MySQL

 

Sujets relatifs
quel framework pour un backoffice php/mysql en un min de temps ?Comment me connecter sur le site de zloche.net avec mysql
[Ada][Warborg] un wargame avec GtkAda[PHP/MYSQL] Updater la valeur des radio dans une base [Résolu]
Recherche développeur php / mysql[PHP, MYSQL] Réaliser un classement avec données de plusieurs tables
petite question mysql_install_db[MySQL ]Problème sur ON DUPLICATE KEY UPDATE
Ajouter un an à 365 dates en MySQL[Ada Project] Anothers Implementation Of Artificial Intelligence
Plus de sujets relatifs à : [Ada][SGBD][Gnade][Mysql]Galère avec Gnade.MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR