Télécharger le zip
Idée forte intéressante. Il faudrait prévoir un système de génération de code par objet. J'ai déjà commencé le codage de ça, mais jamais terminé :) CommandSelect cmd = new CommandSelect(); From frm = new From("bonjour", "test"); cmd.Distinct = true; cmd.Top = new Top(true, 5); cmd.Fields.Add("","sum(id1)", "SumId1"); cmd.Fields.Add("Table1", "id1", string.Empty); cmd.Fields.Add("Table1", "id2", "Key"); cmd.Fields.Add("Table1", "Name", string.Empty); cmd.Fields.Add("Table1", "Name", "TheName"); cmd.AddFrom("Table1"); cmd.AddFrom("Table2"); cmd.AddJoin(JoinType.LeftOuterJoin, "TableExt", new Where("Table1.id1", "TableExt.id1"), new Where("Table1", "id2", "TableExt", "Id2"), new Where("Table1.Id1", "SysColumns", OperatorType.Different)); cmd.AddWhereClause(new Where(new Member("Table1","Name"), "32,43", OperatorType.NotIn)); MessageBox.Show(cmd.ToString());Grâce à ce système tu code de façon totalement universelle, un peu comme tu le fais, et ensuite il te reste à adapter la méthode ToString() aux différents Provider : Oracle, MySQL, Ms Sql, Postgres, etc. Amicalement,Tmcuh
Merci pour ce commentaire, je vais essayer ton idée.Si j'arrive à mes fins je modifierai ce post et mettrai à jour mon code.AmicalementDonald42
Je peux t'avancer en te fournissant le code que j'ai déjà fait... c'est très très long comme process car il y a tellement de cas de figures qu'il faut créer une multitude de class.
Je suis très interessé par ton idée. Tu peux m'envoyer ton code sur scoubidou_61@hotmail.com.
Merci pour ton code.J'ai cependant une petite question.Je remarque que tu cré une classe pour chaque partie de la requête (from, join,...)Ca me paraît une très bonne idée. Je me demande seulement l'intérêt de la serialisation de ces objet. Ton code est nettement supérieur à mon niveau donc je pense qu'il y a une très bonne raison mais j'ai du mal a saisir laquelle peut tu me l'expliqué?
Bonjour, Je fais celà pour plusieurs raisons la première serait qu'on ne mélange pas tous les objets en un seul, la paramétrisation d'un objet deviendrait trop compliqué et on perdrait en rapidité de développement; sans parler qu'il faudrait retenir "comment faire pour".La seconde est une question d'héritage. Lorsque tu passe en paramètre, plusieurs clauses where (de façon indéfini), tu es obligé de passer par des héritages (new where(paramètres)), qui te permette de définir un objet, et tu traite ainsi chaque objet indépendant de celui précédemment créer.C'est une question de souplesse de programmation, mais aussi de rapidité d'exécution. Il y a différentes façon d'attaquer le problème, mais tu reviendra toujours à la source... les classes + propriétés.Pour ce qui est de la sérialisation de l'objet "commandselect", j'y été occupé au moment où j'ai arreté, le but était de mettre le tout dans un fichier xml, permettant le transport de l'information, ainsi que la modification par "l'utilisateur". Le système réagit ainsi plus souplement, mais toujours au détriment des performances. Amicalement,Tmcuh
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 871 720 membres 28 nouveaux aujourd'hui 16 146 membres club