Datalib : simplifiez-vous la vie avec ado.net

Soyez le premier à donner votre avis sur cette source.

Vue 12 011 fois - Téléchargée 2 197 fois

Description

En général, programmer ADO.NET n'a rien de difficile. Mais à force de repéter tout le temps les mêmes gestes, on fini par se lasser un peu.

La bibliothèque DataLib comporte des classes qui prennent automatiquement en charge l'accomplissement d'un certain nombre de tâches quand on travaille avec ADO.NET.
Les habitués de Java reconnaîtront certainement un certain nombre de similitudes avec l'API commons.dbutils. C'est que je me suis légèrement inspiré de cette dernière. Mais .NET n'étant pas Java, j'ai dû faire quelques ajouts pour tirer pleinement profit des avantages de la plate-forme .NET.

Dans la DataLib, vous trouverez principalement une classe nommée QueryRunner. Elle permet d'exécuter des commandes SQL sur une source de données ADO.NET et de recupérer le resultat sous la forme voulue. La transformation du resultat est assurée par un IDataReaderHandler à transmettre en paramètre à la méthode de QueryRunner que vous invoquez. DataLib contient huit implémentations de l'interface IDataReaderHandler et vous pouvez en ajouter. QueryRunner permet également de préparer un commande SQL en vue d'une exécution en boucle avec des valeurs de paramètres variables.

Vous y trouverez aussi une classe nommée DataSetManager qui encapsule un DataSet et fourni des méthodes pour le chargement, l'actualisation et la mise à jour des données du DataSet.
DataSetManager utilise très souvent DbObjectsFactory pour créer par reflexion certains objets nécessaires à la gestion du DataSet interne. Comme DataSetManager hérite de QueryRunner, il vous permet également d'attaquer directement la BDD sans passer par le DataSet.

Toutes ces classes peuvent travailler indifféremment avec n'importe quel fournisseur de données; célà vous dispense de devoir modifier votre code dès que vous changez de fournisseur de données. Mais pour que la portabilité soit parfaite, il faudrait que la syntaxe de vos requêtes SQL ne pose pas de problème en cas de changement de fournisseur. Comme solution, DataLib propose la classe QueryLoader dont le rôle est de charger vos requête à partir d'un fichier texte et de les invoquer par nom(les requêtes étant écrites dans le fichier sous-forme : nom = code sql;). Comme ça, à chaque changement de fournisseur, vous n'avez qu'à reéditer votre fichier de requêtes.

Bonne programmation et merci d'avance pour vos remarques et suggestions.

Source / Exemple :


Voir le ZIP

Conclusion :


Le code n'a pas été commenté mais célà viendra. La demo fournie est basée sur une base PostgreSQL mais il est facile de l'adapter à une base Access. Les classes DataSetManager et QueryLoader ne sont pas exploitées dans la demo. Une prochaîne mise à jour devrait présenter une démo plus complète.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Parfaitement, il suffit que ton SGBD les supporte. Les BLOBs sont représentés par la plupart des fournisseurs sous-forme de tableaux de Bytes. C'est à toi de restituer leur forme originale. Pour la gestion des images par exemple, refère-toi à cette source: http://www.vbfrance.com/codes/AFFICHER-MODIFIER-IMAGES-DANS-DATAGRID_31401.aspx
Messages postés
1
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
4 mai 2007

Code intéressant !
Je voudrais gérer un enregistrement binaire de type Blob cela est-il possible ?
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Ah, j'avais pas remarqué le second volet de ton commentaire. Pour retourner un DataSet ou un DataTable, tu dois carrément définir ta propre implémentation de IDataReaderHandler. Sinon, utilise DataSetManager qui intègre deja un DataSet et qui possède toutes les fonctionnalités de QuerryRunner.
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Ah, j'avais pas remarqué le second volet de ton commentaire. Pour retourner un DataSet ou un DataTable, tu dois carrément définir ta propre implémentation de IDataReaderHandler. Sinon, utilise DataSetManager qui intègre deja un DataSet et qui possède toutes les fonctionnalités de QuerryRunner.
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009

Ajoute une virgule entre les arguments
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.