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); }
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. } }
/// <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); }
/// <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); }
/// <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); }