SYSTEM.DATA.COMMON.DBPROVIDERFACTORY - ACCES GÉNÉRIQUE AUX BASES DE DONNÉES

mastervanou Messages postés 55 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 13 octobre 2008 - 4 janv. 2007 à 21:31
cs_Gwendal3 Messages postés 24 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 7 mai 2009 - 28 juil. 2010 à 16:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40973-system-data-common-dbproviderfactory-acces-generique-aux-bases-de-donnees

cs_Gwendal3 Messages postés 24 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 7 mai 2009
28 juil. 2010 à 16:50
Salut,

Merci pour ta source, elle m'est très utile....
J'ai quand même une petite question. Avec une base SQL CE, comment fais-tu pour récupérer le dernier identity ajouté à la base? Avec SQL CE, on ne peut pas envoyer plus d'une requête à la fois...
"INSERT INTO "nom de table" ("colonne 1", "colonne 2", ...) VALUES ("valeur 1", "valeur 2", ...); SELECT @@IDENTITY" n'est donc pas possible...

Gwendal
inoussyago Messages postés 9 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 11 juillet 2009
17 juin 2009 à 14:00
Salut je suis peut etre un debutant dans tout ce qui es .NET, mais je te felicite.

Je sais pas trop quelle l'objectif que tu as en ayant creer cette classe, mais je t'encourage quand même.
Je pense que cela montre que tu as une assez bonne maitrise de ces outils de persistance qu'ado nous offre.
Certe pour des projet consequents (important) l'ideal serait d'utiliser les librairie ADO.
Mais comme etudiant ce genre de projet nous forme.
sistemaster Messages postés 1 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 18 décembre 2007
18 déc. 2007 à 19:44
Thanks you !!!!

From Chili
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
14 mai 2007 à 23:02
Bon si vous voulez mettre un petit 10 la vous génez pas :p lol ca fait toujours plaisir quand même
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
12 janv. 2007 à 14:01
Je ne suis pas un spécialiste des DB (loin de là), mais je dois avouer que je rejoins un peu vladam. Dans 95% des cas, on peut faire tout ce qu'on veut avec ce qui nous est donné dans le framework, et ceci en relativement peu de ligne. Du coup, de tel projet ne sont pas vraiment utile (même si j'avoue que j'ai pas tout regarder ton code, mais ça à l'air conséquent, pour finalement pas grand chose...)
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
12 janv. 2007 à 02:21
Salut T_Barbillon :)

oui c'est vrai j'ai tendance un peu à abuser des try catch ...
c'est un peu la solution facile lorsqu'on n'a pas mis tous les tests en place ,pour se premunir contre tout plantage brut :p
sinon oui c'est vrai d'habitude j'utilise un booleen ou le nombre de lignes mis à jour

Oui je vois que tu es plutot un jeune chat lol mais si tu as des trucs interessants a dire vas y, ca ne pourra que faire avancer le "schmilblik", moi perso plus ca va et plus je me tourne vers le mode connecte, et j'essaie de bien separer les couches(presentation,metier,persistance + Binding entre Metier et presentation + O/R entre persistance et metier) sinon je vais me realiser (en fait je suis en plein dessus) un generateur de code complet pour la couche metier et la couche persistance qui reposera en parti sur les classes postées ici(et qui sera assez "legere") en fait
j'ai pour idée de faire un designer visuel(ressemblant un peu Power Amc cote designer) et qui permettra de generer a la fois le script de creation de la base (ACCES ou Sql Server), et le projet Visual studio(couche Metier + persistance) si vous etes sage lol peut etre que je posterai les sources sur codes-sources :p
++
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
11 janv. 2007 à 09:02
Salut, juste une petite question au passage, après avoir lu un peu (trop?) rapidement ta source : je me demandais pourquoi mettre un try catch juste pour relancer l'exception catchée? Si c'est pour informer les couches supérieures, tu peux ne pas catcher l'exception (en plus l'objet sera plus fortement typé), ou renvoyer un booléen et mettre à dispo une fonction du style GetLastError.
Pour ce qui est du débatt, je ne suis ni vieux loup ni pro des bdd, donc je m'abstiens ;)
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
8 janv. 2007 à 23:41
Salut :)
Je suis ouvert à tout (du moment que c'est dit avec suffisament de gentillesse), mon but est d'essayer d'avoir les meilleures méthodes pour programmer, ce projet est plus un début et je suis d'accord que ce n'est pas "LA" solution" car en fait on n'a une partie persistance legere mais le code qui devrait etre gerer par la persistance est en fait deplacer seulement (meme s'il s'en trouve moins volumineux), d'un autre coté les generateurs de code du marché me conviennent assez peu, j'aime maitriser tout et ne pas etre dependant d'une solution tiers

Mais je veux bien recevoir les conseils des "vieux loups" de la programmation d'application de gestion,quelles methodes eux utilisent(programmation n-tiers ? en vue de decoupler les couches ? ou non )Utilisez vous le mode deconnecté ? jusqu'a quel point,... comment gerez vous les problemes generes par le mode deconnecte et l'acces concurrentiel et enfin finalement ne preconisez vous pas de developper une solution plus en contact direct avec les données(car apres tout c'est elles qui sont importantes) et en mode connecté ...

Donc si les pros veulent participer a ce sujet(debat ?) que lance ...
concernant les meilleures méthodes de développement pour les applications de gestion aujourd'hui ... allez y :)
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
6 janv. 2007 à 23:27
de rien ! de rien ! de rien! MasterVanou

non mes classes se basent sur un principe simple c'est que seuls quelques parametres changent d'une requete a l'autre(le command.type et le commandText + les parametres), ainsi la connection est definie automatiquement(pas besoin de la coder), et pour definir les command il suffit de passer a une procedure le commandType et le commandText , puis on ajoute les parametres en appelant juste une methode
On a un minimum de code a saisir .. seulement à appeler les methodes des classes qui font tout et leur passer uniquement les parametres importants
on n'a pas des milliers de lignes de codes pour gerer chaque table ,mais une seule classe et finalement on ne saisi que les appels aux methodes, plus l'application est grosse et plus le gain est visible et enorme
cs_vladam Messages postés 216 Date d'inscription dimanche 13 janvier 2002 Statut Modérateur Dernière intervention 7 novembre 2009
6 janv. 2007 à 13:00
Et bien, ce code n'a qu'un intérêt, c'est de montrer à la rigueur ce que vous pouvez faire avec les librairies de ADO.
Si je peux me permettre de donner un conseil aux débutants, pour partir du bon pied :
1) - si vous voulez coder vraiment votre DAL (data Access layer), utilisez Entreprise Library 2.0
2) - si vous voulez vraiment un code propre, utilisez un générateur de code, qui génèrera 100 % de votre DAL (modèle objet relationnel par exemple). MyGeneration est un très bon outil pour cela.

Mon avis (purement personnel), c'est qu'il est inutile d'utiliser dans un projet une classe comme celle-ci. En effet, pourquoi mettre une classe entre vous et ADO sachant qu'avec ADO, vous avez déjà tout sous la main.

En gros, je vous conseil très fortement de passer à la génération de code pour vos DAL, vous gagnerez un temps monstrueux, mais surtout 0 bug !

Amicalement,
mastervanou Messages postés 55 Date d'inscription vendredi 20 octobre 2000 Statut Membre Dernière intervention 13 octobre 2008
4 janv. 2007 à 21:31
merci!,merci!,merci!, je commencais a coder le même type de projet pour avoir toutes les classes d'acces aux données sous la main
comme ton travail est déjà plus abouti que le mien, je regarde ca et je rajouterai ce qui me manque
Rejoignez-nous