/// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public VehiculeCaracteristique(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_vehicule_caracteristique"));
     this.Valeur          = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "valeur");
     this.Caracteristique = new Caracteristique(Connexion, Enregistrement);
 }
Beispiel #2
0
 public Scenario(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "sc_id"));
         this.Name = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "sc_name");
     }
 }
Beispiel #3
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion"> Connexion au serveur MySQL</param>
 /// <param name="Enregistrement"> Enregistrement d'où extraire les valeurs des champs</param>
 public ArmyUnityStuff(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "ars_id"));
         this.ArmyUnity = new ArmyUnity(Connexion, Enregistrement);
         this.Stuff     = new Stuff(Connexion, Enregistrement);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion"> Connexion au serveur MySQL</param>
 /// <param name="Enregistrement"> Enregistrement d'où extraire les valeurs des champs</param>
 public Scenario_Camp(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "sca_id"));
         this.Camp      = new Camp(Connexion, Enregistrement);
         this.Scenario  = new Scenario(Connexion, Enregistrement);
         this.CondiCamp = EnumererCondiCamp();
     }
 }
Beispiel #5
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion"> Connexion au serveur MySQL</param>
 /// <param name="Enregistrement"> Enregistrement d'où extraire les valeurs des champs</param>
 public CharactFeature(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "crf_id"));
         this.CharactRank = new CharactRank(Connexion, Enregistrement);
         this.Feature     = new Feature(Connexion, Enregistrement);
         this.Value       = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "crf_value");
     }
 }
Beispiel #6
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public Utilisateur(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "u_id"));
         this.Login      = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "u_name");
         this.MotDePasse = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "u_password");
         this.Role       = new Role(Connexion, Enregistrement);
     }
 }
Beispiel #7
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public SubUnity(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "su_id"));
         this.Name        = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "su_name");
         this.SousFaction = new SousFaction();
         this.Unity       = new Unity();
     }
 }
Beispiel #8
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public Figurine(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "fi_id"));
         this.Charact     = new Charact(Connexion, Enregistrement);
         this.Utilisateur = new Utilisateur(Connexion, Enregistrement);
     }
 }
Beispiel #9
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public FactureVente(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_facture_vente"));
     this.NumeroFacture    = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "numero_facture");
     this.DateVente        = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_vente");
     this.RemiseSurReprise = Enregistrement.ValeurChampComplet <double>(NomDeLaTablePrincipale, "remise_sur_reprise");
     this.PourcentageTva   = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "pourcentage_tva");
     this.VehiculeVente    = new VehiculeVente(Connexion, Enregistrement);
     this.Client           = new Client(Connexion, Enregistrement);
     this.Employe          = new Employe(Connexion, Enregistrement);
 }
Beispiel #10
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion"> Connexion au serveur MySQL</param>
 /// <param name="Enregistrement"> Enregistrement d'où extraire les valeurs des champs</param>
 public StuffCharactRank(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "scr_id"));
         this.CharactRank = new CharactRank(Connexion, Enregistrement);
         this.Stuff       = new Stuff(Connexion, Enregistrement);
         this.Max         = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "scr_max");
         this.Min         = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "scr_min");
         this.Cout        = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "scr_cost");
     }
 }
Beispiel #11
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public Client(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     base.Connexion = Connexion;
     DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_client"));
     this.Nom              = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "nom_client");
     this.Prenom           = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "prenom_client");
     this.DateNaissance    = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_naissance_client");
     this.Email            = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "email_client");
     this.NumeroTelephone  = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "numero_telephone_client");
     this.Rue              = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "nom_de_rue_client");
     this.NumeroHabitation = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "numero_habitation_client");
     this.Civilite         = new Civilite(Connexion, Enregistrement);
     this.Adresse          = new Adresse(Connexion, Enregistrement);
 }
Beispiel #12
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public Vehicule(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_vehicule"));
         this.Modele         = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "modele");
         this.PrixVehicule   = Enregistrement.ValeurChampComplet <double>(NomDeLaTablePrincipale, "prix_vehicule");
         this.NomImage       = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "nom_image");
         this.TempsLivraison = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "temps_livraison");
         this.Disponible     = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "disponible");
         this.TypeVehicule   = new TypeVehicule(Connexion, Enregistrement);
     }
 }
Beispiel #13
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <Scenario_Camp> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new Scenario_Camp(Connexion, Enregistrement)));
 }
Beispiel #14
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <FactureVente> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new FactureVente(Connexion, Enregistrement)));
 }
Beispiel #15
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <CharactFeature> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new CharactFeature(Connexion, Enregistrement)));
 }
Beispiel #16
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <ArmyUnityStuff> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new ArmyUnityStuff(Connexion, Enregistrement)));
 }
Beispiel #17
0
        /// <summary>
        /// Permet d'exécuter une requête d'action
        /// </summary>
        /// <param name="Requete">Requête SQL à exécuter (doit être de type INSERT, UPDATE ou DELETE)</param>
        /// <param name="Valeurs">Valeurs des parties variables</param>
        /// <returns>Objet décrivant le résultat de l'opération</returns>
        public IResultatExecution Executer(string Requete, params object[] Valeurs)
        {
            string MessageErreur = string.Empty;

            for (int NombreEchecs = 0; NombreEchecs < 2; NombreEchecs++)
            {
                MyDB ConnexionUtilisee = null;
                try
                {
                    // Vérification de l'état théorique de la connexion
                    if (!EstConnecte)
                    {
                        throw new Exception("Pas de connexion établie au serveur MySql");
                    }
                    // Vérification qu'il s'agit bien d'une requête d'action
                    if (EstRequeteConsultation(Requete))
                    {
                        throw new Exception("Une requête de consultation ne peut pas faire l'objet de la méthode MyDB.Executer()");
                    }
                    // Création d'une nouvelle connexion si il y a une lecture en cours
                    if (EstEnCoursDeLecture)
                    {
                        ConnexionUtilisee = new MyDB(this);
                        if (!ConnexionUtilisee.EstConnecte)
                        {
                            throw new Exception("Aucune nouvelle connexion n'a pu être établie vers le serveur MySql");
                        }
                    }
                    else
                    {
                        ConnexionUtilisee = this;
                    }
                    // Création de la commande SQL
                    MySqlCommand Commande = ConnexionUtilisee.CreerCommande(Requete, Valeurs);
                    int          NombreEnregistrementsAffectes = Commande.ExecuteNonQuery();
                    if (EstRequeteInsertion(Requete))
                    {
                        if (ConnexionUtilisee != this)
                        {
                            ConnexionUtilisee.Dispose();
                        }
                        return(new ResultatExecution(NombreEnregistrementsAffectes, Commande.LastInsertedId));
                    }
                    else
                    {
                        if (ConnexionUtilisee != this)
                        {
                            ConnexionUtilisee.Dispose();
                        }
                        return(new ResultatExecution(NombreEnregistrementsAffectes));
                    }
                }
                catch (Exception Erreur)
                {
                    /*
                     * System.Diagnostics.Debug.WriteLine(string.Format(
                     *  "\nMyDB.Executer({0}, {1}) a échoué :\n{2}\n",
                     *  Requete,
                     *  string.Join("", Valeurs.Select(Valeur => string.Format(", {0}", Valeur))),
                     *  Erreur.Message));
                     */
                    if ((ConnexionUtilisee != null) && (ConnexionUtilisee != this))
                    {
                        ConnexionUtilisee.Dispose();
                    }
                    // Sauvegarde du message d'erreur au cas où il faudrait le retourner
                    MessageErreur = Erreur.Message;
                    // Test de l'état de connexion
                    if ((EtatConnexionConnu != EtatConnexion.Perdu) && (!EstConnecte || TesterConnexion()))
                    {
                        if (SurErreur != null)
                        {
                            SurErreur(this, MethodeExecutantRequeteSql.Enumerer, Requete, Valeurs, Erreur.Message);
                        }
                        break;
                    }
                    // En cas de perte de connexion, on tente une fois de se reconnecter
                    if (!SeConnecter())
                    {
                        if (SurErreur != null)
                        {
                            SurErreur(this, MethodeExecutantRequeteSql.Enumerer, Requete, Valeurs, Erreur.Message);
                        }
                        break;
                    }
                    // En cas de réussite de la re-connexion, on boucle une seconde fois sur la tentative d'exécution de cette lecture
                }
            }
            return(new ResultatExecution(MessageErreur));
        }
 /// <summary>
 /// Permet de récupérer le premier enregistrement résultant d'une requête de consultation
 /// </summary>
 /// <param name="Requete">Requête SQL à exécuter (doit être de type SELECT ou SHOW)</param>
 /// <param name="Valeurs">Valeurs des parties variables</param>
 /// <returns>Enregistrement si possible, sinon null</returns>
 public IEnregistrement Consulter(string Requete, params object[] Valeurs)
 {
     for (int NombreEchecs = 0; NombreEchecs < 2; NombreEchecs++)
     {
         MyDB ConnexionUtilisee = null;
         try
         {
             // Vérification de l'état théorique de la connexion
             if (!EstConnecte)
             {
                 throw new Exception("Pas de connexion établie au serveur MySql");
             }
             // Vérification qu'il s'agit bien d'une requête de consultation
             if (!EstRequeteConsultation(Requete))
             {
                 throw new Exception("Une requête d'action ne peut pas faire l'objet de la méthode MyDB.Consulter()");
             }
             // Création de la commande SQL
             MySqlCommand Commande = CreerCommande(Requete, Valeurs);
             if (!DebuterLecture(Commande, out ConnexionUtilisee))
             {
                 throw new Exception("Aucun objet de lecture n'a pu être créé");
             }
             // Préparation de l'objet représentant l'enregistrement courant
             Enregistrement Enregistrement = new Enregistrement(ConnexionUtilisee.m_Lecteur);
             // Tentative de lecture du premier enregistrement
             if (ConnexionUtilisee.m_Lecteur.Read())
             {
                 // Transfert des valeurs de l'enregistrement courant dans le dictionnaire le représentant
                 Enregistrement.ChargerValeurs(0, ConnexionUtilisee.m_Lecteur);
                 // Terminaison de la lecture avec libération des ressources associées
                 if (ConnexionUtilisee != null)
                 {
                     ConnexionUtilisee.TerminerLecture(this);
                 }
                 // Retour du premier enregistrement lu
                 return(Enregistrement);
             }
             // Terminaison de la lecture avec libération des ressources associées
             if (ConnexionUtilisee != null)
             {
                 ConnexionUtilisee.TerminerLecture(this);
             }
         }
         catch (Exception Erreur)
         {
             /*
              * System.Diagnostics.Debug.WriteLine(string.Format(
              *  "\nMyDB.Consulter({0}, {1}) a échoué (version de récupération du premier enregistrement) :\n{2}\n",
              *  Requete,
              *  string.Join("", Valeurs.Select(Valeur => string.Format(", {0}", Valeur))),
              *  Erreur.Message));
              */
             // Terminaison de la lecture avec libération des ressources associées
             if (ConnexionUtilisee != null)
             {
                 ConnexionUtilisee.TerminerLecture(this);
             }
             // Test de l'état de connexion
             if ((EtatConnexionConnu != EtatConnexion.Perdu) && (!EstConnecte || TesterConnexion()))
             {
                 if (SurErreur != null)
                 {
                     SurErreur(this, MethodeExecutantRequeteSql.Enumerer, Requete, Valeurs, Erreur.Message);
                 }
                 break;
             }
             // En cas de perte de connexion, on tente une fois de se reconnecter
             if (!SeConnecter())
             {
                 if (SurErreur != null)
                 {
                     SurErreur(this, MethodeExecutantRequeteSql.Enumerer, Requete, Valeurs, Erreur.Message);
                 }
                 break;
             }
             // En cas de réussite de la re-connexion, on boucle une seconde fois sur la tentative d'exécution de cette lecture
         }
     }
     // Retour d'un enregistrement "null" afin de représenter l'absence d'enregistrement
     return(null);
 }
Beispiel #19
0
 public override void SupprimerEnCascade(PDSGBD.MyDB connexion)
 {
     Connexion.Executer("DELETE FROM subfaction WHERE sf_id = {0}", Id);
 }
Beispiel #20
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <SousFaction> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new SousFaction(Connexion, Enregistrement)));
 }
Beispiel #21
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <Unity> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new Unity(Connexion, Enregistrement)));
 }
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="ConnexionMaitre">Connection "maître"</param>
 public GestionnaireDeConnexionDeLecture(MyDB ConnexionMaitre)
 {
     m_ConnexionMaitre   = ConnexionMaitre;
     m_ConnexionUtilisee = null;
 }
Beispiel #23
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <StuffCharactRank> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new StuffCharactRank(Connexion, Enregistrement)));
 }
Beispiel #24
0
 /// <summary>
 /// Permet d'énumérer les entités correspondant aux enregistrements énumérés
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrements">Enregistrements énumérés, sources des entités à créer</param>
 /// <returns>Enumération des entités issues des enregistrements énumérés</returns>
 public static IEnumerable <Vehicule> Enumerer(PDSGBD.MyDB Connexion, IEnumerable <PDSGBD.MyDB.IEnregistrement> Enregistrements)
 {
     return(Enumerer(Enregistrements, Enregistrement => new Vehicule(Connexion, Enregistrement)));
 }