Beispiel #1
0
 public void ChargeDonnées(string[] titreCommencePar)
 {
     using (new WaitingCursor())
         using (IDbCommand cmd = BDPPCDatabase.GetCommand())
         {
             StringBuilder SQL = new StringBuilder();
             cmd.Parameters.Clear();
             SQL.Append("SELECT * FROM ALBUMS A INNER JOIN SERIES S ON A.REFSERIE = S.REFSERIE");
             if (titreCommencePar != null && titreCommencePar.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < titreCommencePar.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERTITREALBUM LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.GetParameter("@P" + i.ToString(), titreCommencePar[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY A.UPPERTITREALBUM");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader <Album> dataReader = new BaseDataReader <Album>(result))
                     if (result != null)
                     {
                         dataReader.FillList(this);
                     }
         }
 }
Beispiel #2
0
 public void ChargeDonnées(string[] titreCommencePar)
 {
     using (new WaitingCursor())
         using (IDbCommand cmd = BDPPCDatabase.GetCommand())
         {
             StringBuilder SQL = new StringBuilder();
             cmd.Parameters.Clear();
             SQL.Append("SELECT REFEMPRUNTEUR, NOMEMPRUNTEUR FROM EMPRUNTEURS");
             if (titreCommencePar != null && titreCommencePar.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < titreCommencePar.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERNOMEMPRUNTEUR LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.GetParameter("@P" + i.ToString(), titreCommencePar[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY UPPERNOMEMPRUNTEUR");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader <Emprunteur> dataReader = new BaseDataReader <Emprunteur>(result))
                     if (result != null)
                     {
                         dataReader.FillList(this);
                     }
         }
 }
        public override void Fill(params object[] references)
        {
            if (references.Length < 1)
            {
                return;
            }
            int reference = (int)references[0];

            if (reference == 0)
            {
                return;
            }
            using (new WaitingCursor())
                using (IDbCommand cmd = BDPPCDatabase.GetCommand())
                {
                    cmd.CommandText = "SELECT REFEDITEUR, NOMEDITEUR, SITEWEB FROM EDITEURS WHERE REFEDITEUR = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refediteur", reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <EditeurComplet> dataReader = new BaseDataReader <EditeurComplet>(result))
                            if (result != null && result.Read())
                            {
                                dataReader.LoadData(this);
                            }
                }
        }
Beispiel #4
0
 public void loadData(string[] TitleStartWith)
 {
     using (new WaitCursor())
         using (IDbCommand cmd = BDPPCDatabase.getCommand())
         {
             StringBuilder SQL = new StringBuilder();
             SQL.Append("SELECT * FROM ALBUMS A INNER JOIN SERIES S ON A.REFSERIE = S.REFSERIE");
             if (TitleStartWith != null && TitleStartWith.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < TitleStartWith.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERTITREALBUM LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.getParameter("@P" + i.ToString(), TitleStartWith[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY A.UPPERTITREALBUM");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader dataReader = new BaseDataReader(result, typeof(Album)))
                     if (result != null)
                     {
                         dataReader.fillList(this);
                     }
         }
 }
 public void loadData(string[] TitleStartWith)
 {
     using (new WaitCursor())
         using (IDbCommand cmd = BDPPCDatabase.getCommand())
         {
             StringBuilder SQL = new StringBuilder();
             SQL.Append("SELECT REFEMPRUNTEUR, NOMEMPRUNTEUR FROM EMPRUNTEURS");
             if (TitleStartWith != null && TitleStartWith.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < TitleStartWith.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERNOMEMPRUNTEUR LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.getParameter("@P" + i.ToString(), TitleStartWith[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY UPPERNOMEMPRUNTEUR");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader dataReader = new BaseDataReader(result, typeof(Emprunteur)))
                     if (result != null)
                     {
                         dataReader.fillList(this);
                     }
         }
 }
Beispiel #6
0
 public void loadData(string[] TitleStartWith)
 {
     using (new WaitCursor())
         using (IDbCommand cmd = BDPPCDatabase.getCommand())
         {
             StringBuilder SQL = new StringBuilder();
             SQL.Append("SELECT * FROM SERIES S LEFT JOIN EDITEURS E ON S.REFEDITEUR = E.REFEDITEUR LEFT JOIN COLLECTIONS C ON S.REFCOLLECTION=C.REFCOLLECTION");
             if (TitleStartWith != null && TitleStartWith.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < TitleStartWith.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERTITRESERIE LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.getParameter("@P" + i.ToString(), TitleStartWith[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY S.UPPERTITRESERIE");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader dataReader = new BaseDataReader(result, typeof(Serie)))
                     if (result != null)
                     {
                         dataReader.fillList(this);
                     }
         }
 }
Beispiel #7
0
 public void ChargeDonnées(string[] titreCommencePar)
 {
     using (new WaitingCursor())
         using (IDbCommand cmd = BDPPCDatabase.GetCommand())
         {
             StringBuilder SQL = new StringBuilder();
             cmd.Parameters.Clear();
             SQL.Append("SELECT * FROM SERIES S LEFT JOIN EDITEURS E ON S.REFEDITEUR = E.REFEDITEUR LEFT JOIN COLLECTIONS C ON S.REFCOLLECTION=C.REFCOLLECTION");
             if (titreCommencePar != null && titreCommencePar.Length > 0)
             {
                 SQL.Append("\nWHERE");
                 for (int i = 0; i < titreCommencePar.Length; i++)
                 {
                     SQL.Append((i == 0 ? "" : "\nOR") + "\nUPPERTITRESERIE LIKE ?");
                     cmd.Parameters.Add(BDPPCDatabase.GetParameter("@P" + i.ToString(), titreCommencePar[i].ToUpper() + "%"));
                 }
             }
             SQL.Append("\nORDER BY S.UPPERTITRESERIE");
             cmd.CommandText = SQL.ToString();
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader <Série> dataReader = new BaseDataReader <Série>(result))
                     if (result != null)
                     {
                         dataReader.FillList(this);
                     }
         }
 }
Beispiel #8
0
        public static bool CheckVersion(bool force)
        {
            using (IDbCommand cmd = BDPPCDatabase.GetCommand())
            {
                cmd.CommandText = "SELECT VALEUR FROM OPTIONS WHERE Nom_option = 'Version'";
                string   version  = (string)cmd.ExecuteScalar();
                Assembly assembly = Assembly.GetExecutingAssembly();
                if (version == null)
                {
                    version         = "0.0.0.0";
                    cmd.CommandText = "INSERT INTO OPTIONS (Nom_Option, Valeur) VALUES ('Version', ?)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@version", version));
                    try
                    {
                        cmd.ExecuteNonQuery();
                    }
                    catch
                    {
                    }
                }

                string msg = "BDthèque ne peut pas utiliser cette base de données.\nVersion de la base de données: " + version;

                int compareValue = assembly.GetName().Version.CompareTo(new Version(version));
                if (compareValue < 0)
                {
                    MessageBox.Show(msg);
                    return(false);
                }

                if (compareValue > 0)
                {
                    if (!(force || MessageBox.Show(msg + "\nVoulez-vous la mettre à jour?", "BDPPC", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes))
                    {
                        return(false);
                    }

                    // process de mise à jour à mettre ici

                    cmd.CommandText = "UPDATE OPTIONS SET Valeur = ? WHERE Nom_Option = 'Version'";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@version", assembly.GetName().Version.ToString()));
                    cmd.ExecuteNonQuery();
                    if (!force)
                    {
                        MessageBox.Show("Mise à jour terminée");
                    }
                }
            }
            return(true);
        }
        public override void Fill(params object[] references)
        {
            if (references.Length < 1)
            {
                return;
            }
            int reference = (int)references[0];

            if (reference == 0)
            {
                return;
            }
            using (new WaitingCursor())
                using (IDbCommand cmd = BDPPCDatabase.GetCommand())
                {
                    cmd.CommandText = "SELECT REFPERSONNE, NOMPERSONNE, SITEWEB, BIOGRAPHIE FROM PERSONNES WHERE REFPERSONNE = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refpersonne", reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <AuteurComplet> dataReader = new BaseDataReader <AuteurComplet>(result))
                            if (result != null && result.Read())
                            {
                                dataReader.LoadData(this);
                            }

                    // UpperTitreSerie en premier pour forcer l'union à trier sur le titre
                    cmd.CommandText  = "SELECT UPPERTITRESERIE, s.REFSERIE";
                    cmd.CommandText += " FROM ALBUMS al";
                    cmd.CommandText += "  INNER JOIN AUTEURS au ON al.refalbum = au.refalbum AND au.refpersonne = ?";
                    cmd.CommandText += "  INNER JOIN SERIES s ON s.refserie = al.refserie";
                    cmd.CommandText += " union ";
                    cmd.CommandText += "SELECT UPPERTITRESERIE, s.REFSERIE";
                    cmd.CommandText += " FROM auteurs_series au";
                    cmd.CommandText += "  INNER JOIN SERIES s ON s.refserie = au.refserie AND au.refpersonne = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refpersonne1", reference));
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refpersonne2", reference));
                    this.Séries.Clear();
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <object> dataReader = new BaseDataReader <object>(result))
                            if (result != null)
                            {
                                while (result.Read())
                                {
                                    this.Séries.Add(BaseRecord.Create <SérieCompletPPC>(dataReader.GetInt(1), this.RefAuteur));
                                }
                            }
                }
        }
Beispiel #10
0
        private bool ExcuteSQL(string sql)
        {
            if (sql == null || sql.Length == 0)
            {
                return(true);
            }
#if (DEBUG)
            using (IDbCommand _command = BDPPCDatabase.DebugDBConnection().Connection.CreateCommand())
#else
            using (IDbCommand _command = BDPPCDatabase.DBConnection.Connection.CreateCommand())
#endif
            {
                _command.CommandText = sql;
                _command.ExecuteNonQuery();
            }
            return(true);
        }
Beispiel #11
0
 public override void Fill(int Reference)
 {
     if (Reference == 0)
     {
         return;
     }
     using (new WaitCursor())
         using (IDbCommand cmd = BDPPCDatabase.getCommand())
         {
             cmd.CommandText = "SELECT REFEDITEUR, NOMEDITEUR, SITEWEB FROM EDITEURS WHERE REFEDITEUR = ?";
             cmd.Parameters.Add(BDPPCDatabase.getParameter("@refediteur", Reference));
             using (IDataReader result = cmd.ExecuteReader())
                 using (BaseDataReader dataReader = new BaseDataReader(result, this.GetType()))
                     if (result != null && result.Read())
                     {
                         dataReader.loadData(this);
                     }
         }
 }
Beispiel #12
0
        public override void Fill(int Reference)
        {
            if (Reference == 0)
            {
                return;
            }
            using (new WaitCursor())
                using (IDbCommand cmd = BDPPCDatabase.getCommand())
                {
                    cmd.CommandText = "SELECT REFPERSONNE, NOMPERSONNE, SITEWEB, BIOGRAPHIE FROM PERSONNES WHERE REFPERSONNE = ?";
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@refpersonne", Reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, this.GetType()))
                            if (result != null && result.Read())
                            {
                                dataReader.loadData(this);
                            }

                    // UpperTitreSerie en premier pour forcer l'union à trier sur le titre
                    cmd.CommandText  = "SELECT UPPERTITRESERIE, s.REFSERIE";
                    cmd.CommandText += " FROM ALBUMS al";
                    cmd.CommandText += "  INNER JOIN AUTEURS au ON al.refalbum = au.refalbum AND au.refpersonne = ?";
                    cmd.CommandText += "  INNER JOIN SERIES s ON s.refserie = al.refserie";
                    cmd.CommandText += " union ";
                    cmd.CommandText += "SELECT UPPERTITRESERIE, s.REFSERIE";
                    cmd.CommandText += " FROM auteurs_series au";
                    cmd.CommandText += "  INNER JOIN SERIES s ON s.refserie = au.refserie AND au.refpersonne = ?";
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@refpersonne1", Reference));
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@refpersonne2", Reference));
                    Series.Clear();
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, typeof(SerieComplet)))
                            if (result != null)
                            {
                                while (result.Read())
                                {
                                    Series.Add(new SerieCompletPPC(dataReader.GetInt(1), this.RefAuteur));
                                }
                            }
                }
        }
        public static void ProcAuteurs(ArrayList list, int refAlbum, int refSérie)
        {
            using (new WaitingCursor())
                using (IDbCommand cmd = BDPPCDatabase.GetCommand())
                {
                    if (refAlbum != -1)
                    {
                        cmd.CommandText = "select p.refpersonne, p.nompersonne, a.refalbum, NULL as refserie, a.metier "
                                          + "from personnes p inner join auteurs a on a.refpersonne = p.refpersonne "
                                          + "where a.refalbum = ? "
                                          + "order by a.metier, p.uppernompersonne";
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(BDPPCDatabase.GetParameter("@RefAlbum", refAlbum));

                        using (IDataReader result = cmd.ExecuteReader())
                            using (BaseDataReader <Auteur> dataReader = new BaseDataReader <Auteur>(result))
                                if (result != null)
                                {
                                    dataReader.FillList(list);
                                }
                    }

                    if (refSérie != -1)
                    {
                        cmd.CommandText = "select p.refpersonne, p.nompersonne, NULL as refalbum, a.refserie, a.metier "
                                          + "from personnes p inner join auteurs_series a on a.refpersonne = p.refpersonne "
                                          + "where a.refserie = ? "
                                          + "order by a.metier, p.uppernompersonne";
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(BDPPCDatabase.GetParameter("@RefSerie", refSérie));

                        using (IDataReader result = cmd.ExecuteReader())
                            using (BaseDataReader <Auteur> dataReader = new BaseDataReader <Auteur>(result))
                                if (result != null)
                                {
                                    dataReader.FillList(list);
                                }
                    }
                }
        }
Beispiel #14
0
        private void ExecuteScript(ArrayList script)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = script.Count;
#if (DEBUG)
            using (IDbCommand _command = BDPPCDatabase.DebugDBConnection().Connection.CreateCommand())
#else
            using (IDbCommand _command = BDPPCDatabase.DBConnection.Connection.CreateCommand())
#endif
            {
                for (int i = 0; i < script.Count; i++)
                {
                    _command.CommandText = (string)script[i];
                    _command.ExecuteNonQuery();

                    if (i % 100 == 0)
                    {
                        progressBar1.Value = i;
                    }
                }
            }
            MessageBox.Show("Ok");
        }
Beispiel #15
0
        private void ExecuteScript(string[] script)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = script.Length;
#if (DEBUG)
            using (IDbCommand _command = BDPPCDatabase.DebugDBConnection().Connection.CreateCommand())
#else
            using (IDbCommand _command = BDPPCDatabase.DBConnection.Connection.CreateCommand())
#endif
            {
                foreach (string sql in script)
                {
                    _command.CommandText = sql;
                    _command.ExecuteNonQuery();
                    progressBar1.Value++;
                    if (progressBar1.Value % 100 == 0)
                    {
                        progressBar1.Update();
                    }
                }
            }
            MessageBox.Show("Ok");
        }
Beispiel #16
0
        public override void Fill(int Reference)
        {
            if (Reference == 0)
            {
                return;
            }
            using (new WaitCursor())
                using (IDbCommand cmd = BDPPCDatabase.getCommand())
                {
                    cmd.CommandText = "SELECT REFSERIE, TITRESERIE, TERMINEE, SUJETSERIE, REMARQUESSERIE, SITEWEB, S.REFEDITEUR, S.REFCOLLECTION, NOMCOLLECTION "
                                      + "FROM SERIES S LEFT JOIN COLLECTIONS C ON S.REFCOLLECTION = C.REFCOLLECTION "
                                      + "WHERE REFSERIE = ?";
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@refserie", Reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, this.GetType()))
                            if (result != null && result.Read())
                            {
                                dataReader.loadData(this);
                                Terminee = dataReader.GetInt(2, -1);
                                Editeur.Fill();
                            }

                    cmd.CommandText = "SELECT REFALBUM, TITREALBUM, INTEGRALE, HORSSERIE, TOME, TOMEDEBUT, TOMEFIN, REFSERIE "
                                      + "FROM ALBUMS "
                                      + "WHERE REFSERIE = ? ";
                    if (FIdAuteur != -1)
                    {
                        cmd.CommandText += "AND REFALBUM IN (SELECT REFALBUM FROM AUTEURS WHERE REFPERSONNE = ?) ";
                    }
                    cmd.CommandText += "ORDER BY COALESCE(HORSSERIE, -1), COALESCE(INTEGRALE, -1), COALESCE(TOME, -1)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@RefSerie", Reference));
                    if (FIdAuteur != -1)
                    {
                        cmd.Parameters.Add(BDPPCDatabase.getParameter("@FIdAuteur", FIdAuteur));
                    }

                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, typeof(Album)))
                            if (result != null)
                            {
                                dataReader.fillList(Albums);
                            }

                    cmd.CommandText = "SELECT Genre "
                                      + "FROM GenreSeries s INNER JOIN Genres g ON g.RefGenre = s.RefGenre "
                                      + "WHERE RefSerie = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@RefSerie", Reference));
                    Genres.Clear();
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, null))
                            while (result.Read())
                            {
                                Genres.Add(dataReader.GetString(0, string.Empty));
                            }

                    ArrayList Auteurs = new ArrayList();
                    StoredProcedures.Proc_Auteurs(Auteurs, -1, Reference);
                    Scenaristes.Clear();
                    Dessinateurs.Clear();
                    Coloristes.Clear();
                    foreach (Auteur auteur in Auteurs)
                    {
                        switch (auteur.Metier)
                        {
                        case 0:
                        {
                            Scenaristes.Add(auteur);
                            break;
                        }

                        case 1:
                        {
                            Dessinateurs.Add(auteur);
                            break;
                        }

                        case 2:
                        {
                            Coloristes.Add(auteur);
                            break;
                        }
                        }
                    }
                }
        }
        public override void Fill(params object[] references)
        {
            if (references.Length < 1)
            {
                return;
            }
            int reference = (int)references[0];

            if (reference == 0)
            {
                return;
            }
            if (references.Length > 1)
            {
                this.FIdAuteur = (int)references[1];
            }
            else
            {
                this.FIdAuteur = -1;
            }
            using (new WaitingCursor())
                using (IDbCommand cmd = BDPPCDatabase.GetCommand())
                {
                    cmd.CommandText = "SELECT REFSERIE, TITRESERIE, TERMINEE, SUJETSERIE, REMARQUESSERIE, SITEWEB, S.REFEDITEUR, S.REFCOLLECTION, NOMCOLLECTION "
                                      + "FROM SERIES S LEFT JOIN COLLECTIONS C ON S.REFCOLLECTION = C.REFCOLLECTION "
                                      + "WHERE REFSERIE = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refserie", reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <SérieComplet> dataReader = new BaseDataReader <SérieComplet>(result))
                            if (result != null && result.Read())
                            {
                                dataReader.LoadData(this);
                                this.Terminée = dataReader.GetInt(2, -1);
                                this.Editeur.Fill(this.Editeur.Reference);
                            }

                    cmd.CommandText = "SELECT REFALBUM, TITREALBUM, INTEGRALE, HORSSERIE, TOME, TOMEDEBUT, TOMEFIN, REFSERIE "
                                      + "FROM ALBUMS "
                                      + "WHERE REFSERIE = ? ";
                    if (this.FIdAuteur != -1)
                    {
                        cmd.CommandText += "AND REFALBUM IN (SELECT REFALBUM FROM AUTEURS WHERE REFPERSONNE = ?) ";
                    }
                    cmd.CommandText += "ORDER BY COALESCE(HORSSERIE, -1), COALESCE(INTEGRALE, -1), COALESCE(TOME, -1)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@RefSerie", reference));
                    if (this.FIdAuteur != -1)
                    {
                        cmd.Parameters.Add(BDPPCDatabase.GetParameter("@FIdAuteur", this.FIdAuteur));
                    }

                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <Album> dataReader = new BaseDataReader <Album>(result))
                            if (result != null)
                            {
                                dataReader.FillList(this.Albums);
                            }

                    cmd.CommandText = "SELECT Genre "
                                      + "FROM GenreSeries s INNER JOIN Genres g ON g.RefGenre = s.RefGenre "
                                      + "WHERE RefSerie = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@RefSerie", reference));
                    this.Genres.Clear();
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <object> dataReader = new BaseDataReader <object>(result))
                            while (result.Read())
                            {
                                this.Genres.Add(dataReader.GetString(0, string.Empty));
                            }

                    ArrayList Auteurs = new ArrayList();
                    StoredProceduresPPC.ProcAuteurs(Auteurs, -1, reference);
                    this.Scénaristes.Clear();
                    this.Dessinateurs.Clear();
                    this.Coloristes.Clear();
                    foreach (Auteur auteur in Auteurs)
                    {
                        switch (auteur.Metier)
                        {
                        case 0:
                        {
                            this.Scénaristes.Add(auteur);
                            break;
                        }

                        case 1:
                        {
                            this.Dessinateurs.Add(auteur);
                            break;
                        }

                        case 2:
                        {
                            this.Coloristes.Add(auteur);
                            break;
                        }
                        }
                    }
                }
        }
        public override void Fill(params object[] references)
        {
            if (references.Length < 1)
            {
                return;
            }
            int reference = (int)references[0];

            if (reference == 0)
            {
                return;
            }
            using (new WaitingCursor())
                using (IDbCommand cmd = BDPPCDatabase.GetCommand())
                {
                    cmd.CommandText = "SELECT REFALBUM, TITREALBUM, ANNEEPARUTION, REFSERIE, TOME, TOMEDEBUT, TOMEFIN, SUJETALBUM, REMARQUESALBUM, HORSSERIE, INTEGRALE "
                                      + "FROM ALBUMS "
                                      + "WHERE RefAlbum = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refalbum", reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <AlbumCompletPPC> dataReader = new BaseDataReader <AlbumCompletPPC>(result))
                            if (result != null && result.Read())
                            {
                                dataReader.LoadData(this);
                                Série.Fill(dataReader.GetInt(3, -1));
                            }

                    ArrayList Auteurs = new ArrayList();
                    StoredProceduresPPC.ProcAuteurs(Auteurs, reference, -1);
                    this.Scénaristes.Clear();
                    this.Dessinateurs.Clear();
                    this.Coloristes.Clear();
                    foreach (Auteur auteur in Auteurs)
                    {
                        switch (auteur.Metier)
                        {
                        case 0:
                        {
                            this.Scénaristes.Add(auteur);
                            break;
                        }

                        case 1:
                        {
                            this.Dessinateurs.Add(auteur);
                            break;
                        }

                        case 2:
                        {
                            this.Coloristes.Add(auteur);
                            break;
                        }
                        }
                    }

                    this.Editions.Clear();
                    cmd.CommandText = "SELECT REFEDITION, RefAlbum, e.REFEDITEUR, e.REFCOLLECTION, NOMCOLLECTION, ANNEEEDITION, PRIX, VO, COULEUR, ISBN, DEDICACE, PRETE, STOCK, Offert, Gratuit, "
                                      + "NombreDePages, etat, le.libelle as setat, reliure, lr.libelle as sreliure, orientation, lo.libelle as sorientation, FormatEdition, lf.libelle as sFormatEdition, typeedition, lte.libelle as stypeedition, DateAchat, Notes "
                                      + "FROM EDITIONS e LEFT JOIN COLLECTIONS c ON e.REFCOLLECTION = c.REFCOLLECTION "
                                      + "LEFT JOIN LISTES le on (le.ref = e.etat and le.categorie = 1) "
                                      + "LEFT JOIN LISTES lr on (lr.ref = e.reliure and lr.categorie = 2) "
                                      + "LEFT JOIN LISTES lte on (lte.ref = e.typeedition and lte.categorie = 3) "
                                      + "LEFT JOIN LISTES lo on (lo.ref = e.orientation and lo.categorie = 4) "
                                      + "LEFT JOIN LISTES lf on (lf.ref = e.formatedition and lf.categorie = 5) "
                                      + "WHERE REFALBUM = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.GetParameter("@refalbum", RefAlbum));

                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader <Edition> dataReader = new BaseDataReader <Edition>(result))
                            if (result != null)
                            {
                                dataReader.FillList(this.Editions);
                            }
                    //Self.Editeur.Fill(Fields.ByNameAsInteger['REFEDITEUR']);
                    //Self.Collection.Fill(q);
                }
        }