コード例 #1
0
ファイル: Articles.cs プロジェクト: DigitalActivity/Philatel
        public override bool SQLCreerColonnes(OleDbConnection m_bd)
        {
            ArticlePhilatélique Article = null;

            Tuple <string, string>[] colonnes =
            {
                new Tuple <string, string>("type",           "Text(80)"),
                new Tuple <string, string>("numero",         "Integer"),
                new Tuple <string, string>("motif",          "Text(50)"),
                new Tuple <string, string>("date_parution",  "Date"),
                new Tuple <string, string>("prix_payé",      "Double"),
                new Tuple <string, string>("coin",           "Integer"),
                new Tuple <string, string>("valeur_timbre",  "Double"),
                new Tuple <string, string>("nombre_timbres", "Integer"),
                new Tuple <string, string>("taille_forme",   "Text(50)")
            };

            try
            {
                RequeteSQL.InsererColonnesSiNonExistantes("Articles", colonnes);
            }
            catch
            {
                return(false);
            }
            return(true);
        }
コード例 #2
0
ファイル: Document.cs プロジェクト: DigitalActivity/Philatel
        public PileLimitée <ICommande> m_commandesRétablissbles = new PileLimitée <ICommande>(5); // Commandes pour le Retablir/Ctrl+Y

        private Document()
        {
            try
            {
                // Recuperer le document
                Récupérer();
                try
                {
                    // Connecter la base des données
                    RequeteSQL.Connecterbd(strAccessConn);
                    // Chaque fabrique crée les colonnes du type d'article associé dans la base de donnée
                    IEnumerator <IFabriqueCommande> fab = LesFabriques.GetEnumerator();
                    while (fab.MoveNext())
                    {
                        fab.Current.CréerCommandeSQLPourCréerColonnes(RequeteSQL.m_bd).Exécuter();
                    }
                }
                catch {
                    AvertirCritique("La lecture de « {0} » a échoué.\n" +
                                    "Le programme va continuer sans utiliser la base des données.\n" +
                                    "Les données sont toujours sauvegardées dans le document « {1} »",
                                    NomFichierBD, NomFichierPhilatélie);
                }
            }
            catch
            {
                AvertirCritique("La lecture de « {0} » a échoué.\n" +
                                "Le programme va s'arrêter.\n",
                                NomFichierPhilatélie);

                Environment.Exit(0);  // Permet d'arrêter le programme directement.
            }
        }
コード例 #3
0
ファイル: Document.cs プロジェクト: DigitalActivity/Philatel
 /// <summary>
 /// Ajoute l'article (les observateurs sont ensuite notifiés).
 /// </summary>
 /// <param name="p_article">l'article à ajouter</param>
 public void Ajouter(ArticlePhilatélique p_article)
 {
     m_articles.Add(p_article);
     m_docModifié = true;
     RequeteSQL.AjouterArticle(p_article);
     Notifier(this);
 }
コード例 #4
0
ファイル: Document.cs プロジェクト: DigitalActivity/Philatel
        /// <summary>
        /// Inscrit la nouvelle version de l'article (les observateurs sont ensuite notifiés).
        /// (un article portant le même numéro doit déjà exister)
        /// </summary>
        /// <param name="p_article">l'article pour remplacer l'ancien</param>
        public void Modifier(ArticlePhilatélique p_article)
        {
            int indiceArticle = m_articles.FindIndex(a => a.Numéro == p_article.Numéro);

            Debug.Assert(indiceArticle != -1);
            m_articles[indiceArticle] = p_article;
            m_docModifié = true;
            RequeteSQL.ModifierArticle(p_article);
            Notifier(this);
        }
コード例 #5
0
ファイル: Document.cs プロジェクト: DigitalActivity/Philatel
        /// <summary>
        /// Retire un article des articles conservés.
        /// </summary>
        /// <param name="p_noArticle">le numéro de l'article à retirer</param>
        /// <returns>true si l'article existait et a été retiré, false sinon</returns>
        public bool RetirerArticle(int p_noArticle)
        {
            int indiceArticle = m_articles.FindIndex(a => a.Numéro == p_noArticle);

            if (indiceArticle == -1)
            {
                return(false);
            }

            RequeteSQL.SupprimerArticle(p_noArticle);
            m_articles.RemoveAtEnOrdre(indiceArticle);
            m_docModifié = true;
            Notifier(this);
            return(true);
        }