Création d'applications de Bases de données

Tutoriel 1, Chapitre 7 de QT

Résumé

Télécharger les sources de QT

Tutoriels et documentation

Traduit par Gilles Thomassin, gthom at gapline.org


Table des matières

Création d'applications de Bases de données
Construire les connexions aux bases de données
Mettre en place la connexion pour Qt Designer
Paramétrage de Connexions pour les Applications
Utiliser le composant QDataTable
Visualisation rapide du contenu d'une table
Insérer des enregistrements dans un QDataTable
Utilisation de l'interface utilisateur du QDataTable
Créer une relation Maître-Détail entre deux Tables
Utilisation du QDataBrowser et du QDataView
Passer à un formulaire utilisant un QDataBrowser
Utilisation de l'interface du QDataBrowser

Création d'applications de Bases de données

Ce chapitre expose la façon d'employer les composants orientés données de Qt Designer. Vous y verrez comment effectuer INSERT, UPDATE et DELETE dans les QDataTables (tables) et les QDataBrowsers (fiches).Il montre aussi comment mettre en oeuvre des relations maître-détail et "drilldown". Vous y trouverez aussi une initiation à la gestion des clefs étrangères; vous trouverez une approche plus précise dans le manuel du module SQL.

Si vous souhaitez exécuter les exemples ou créer votre propre application à l'aide des composants orientés données, il vous faudra disposer d'un accès à un moteur de base de données et du driver QT correspondant. Actuellement Les drivers supportés par QT sont: QODBC3 (Open Database Connectivity), QOCI8 (Oracle Call Interface), QPSQL7 (PostgreSQL 6 et 7) and QMYSQL3 (MySQL).

Si vous souhaitez exécuter les exemples ou créer votre propre application à l'aide des composants orientés données, il vous faudra disposer d'un accès à un moteur de base de données et du driver QT correspondant. Actuellement Les drivers supportés par QT sont: QODBC3 (Open Database Connectivity), QOCI8 (Oracle Call Interface), QPSQL7 (PostgreSQL 6 et 7) and QMYSQL3 (MySQL).

Bien que vous puissiez utiliser les composant orientés D.B. de QT pour visualiser et éditer les données des bases SQL sans avoir à connaître le SQL, il est toutefois recommandé d'apprendre les bases de ce langage. Nous partons du principe ici que vous êtes familiarisé avec tout ce qui est SELECT, INSERT, UPDATE et DELETE. On suppose aussi que vous disposez des notions de base sur la normalisation et la notion de clé étrangère.

Dans le texte qui suit nous allons décrire la création d'une gestion de livres. L'application illustrera l'usage des QdataTables en incluant l'édition et la façon dont on peut créer des relations maître-détail entre les tables. Nous verrons aussi comment construire une drill down à partir d'un QDataTable vers un autre composant, comme par exemple un QDataBrowser ou un QDataView et comment éditer des enregistrements dans un QDataBrowser. Beaucoup de fonctionnalités sont proposées également par les classes Qt Designer Vous pouvez dériver les classes de base pour un contrôle plus fin. Si vous souhaitez expérimenter l'exemple "BOOK" vous devez exécuter le schéma de la base de données.

Figure 22. L'application "Livre" - Le Schéma de l'exemple

Notez bien que les exemples de ce chapitre utilisent tous les tables, vues et enregistrements définis grâce au script book.sql. Ce script a été testé avec PostgreSQL 6 et PostgreSQL 7. Il se peut que vous ayez à modifier ce script pour l'adapter à votre système.
MLDR:
livre=(no entier ,titre chaine ,auteur entier, prix réel)
clé étrangère(auteur) référence auteur(no)
auteur=(no entier, nom chaine ,prenom chaine)
sequence=(nomtable chaine, sequence entier)
La table 'livre' a été simplifiée pour les besoins de l'application. Elle ne met en relation un livre qu'avec un seul auteur (auteur) et il lui manque le champ ISBN. La table 'sequence' est utilisée pour générer les valeurs des identifiants des tables de la base. Notez que chaque moteur de base de données dispose de sa propre méthode pour gérer les numéros séquentiels ou automatiques, Il s'agit bien sûr de la meilleure méthode pour cela. C'est pour une raison de portabilité des exemples que nous utilisons ici la table sequence.