Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.

Slides:



Advertisements
Présentations similaires
Réaliser en Java un programme client d’une Base de Données
Advertisements

PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
MySQL I / Présentation. II / Administration et Outils.
Vues.
C.
MySQL et PHP.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
TP 3-4 BD21.
Programmation dapplication INT. 2 Bases de Données Plan du document Contexteslide 1 Programmer avec une BDslide 2 Client-Serveur SQL et architecture 3.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
Common Gateway Interface
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Gestion des systèmes d’information
1 Développement des Applications des Bases de Données Chapitre 6.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
1 Développement des Applications des Bases de Données Chapitre 6.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
Procédures et fonctions
PHP & My SQL.
Problèmes BD. Bases de données - Yann Loyer2 Problèmes BD Ensemble de problèmes couramment rencontrés lors du développement d’applications de bases de.
Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b Notion de variables b MySQL.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Le Langage de BLOC PL/SQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Bases de données Yann Loyer
Autres éléments du langage
Créer des packages.
Module 12 : Implémentation de procédures stockées.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
 Requêtes MySQL en PHP Introduction
Programmation Système et Réseau
Les sockets.
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
Gérer les rôles.
1 Copyright © Oracle Corporation, Tous droits réservés. Présentation des sous-programmes PL/SQL.
Gérer les utilisateurs
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Interface Java – Oracle : JDBC. I-2 JDBC (Java DataBase Connectivity) : interface API (Application Programming Interface) qui permet d’exécuter des ordres.
Interface langage hôte PRO*C
Procédures Stockées Fonctions Paquetages
JDBC (Complément de cours) IFT 3030
Initiation aux bases de données et à la programmation événementielle
Cours n°2 Implémentation et exploitation
Introduction au langage PL/SQL
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
CONCEPTS BD - Synthèse journée 1 :
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Connexion en mode application

Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre laccès au SGBD à partir dun langage de haut niveau (C, JAVA, …) Problèmes BD –traités exactement comme en interactif –+ programmation non BD pour : Calculs Conversationnel Contrôle (ex: récursivité)

Bases de données - Yann Loyer3 Principe Programme classique (C, JAVA,…) + connexion serveur + tout ordre SGBD + gestion de la communication client/serveur Pour résoudre des problèmes : –utiliser les mêmes ordres quen mode interactif

Bases de données - Yann Loyer4 Cycle de vie dun programme Ordres SGBD inclus : –ne sont pas des instructions du langage hôte –lors de la précompilation détectés Remplacés par du C –lors de lexécution transmis au serveur

Bases de données - Yann Loyer5 Cycle de vie dun programme Éditeur de texte Programme source Précompilateur oracle Programme source modifié Compilateur standard Programme objet Editeur de liens Programme exécutable Bibliothèque oracle ex.pcex.c ex.oex.out

Bases de données - Yann Loyer6 Vocabulaire C : langage hôte Programme sexécutant : client en mode application Ordres SGBD : ordres inclus (embedded SQL statements) Variables hôtes : variables qui hébergent les valeurs SGBD

Bases de données - Yann Loyer7 Structure dun programme Un programme ProC est composé de deux sections: 1.Prologue de lapplication 2.Corps de lapplication

Bases de données - Yann Loyer8 Prologue (1) Cette partie est divisée en 3 sous-sections : 1.Section INCLUDE 2.Section DECLARE 3.Section CONNECT

Bases de données - Yann Loyer9 Prologue (2) Section INCLUDE permet la mise en action de certaines options par utilisation de variables #INCLUDE Par défaut, ProC ignore toutes les erreurs et continue lexécution si possible Exemples de variables –sqlca.sqlcode –Sqlca.sqlwarn

Bases de données - Yann Loyer10 Prologue (3) La section DECLARE contient les définitions de variables hôtes EXEC SQL BEGIN DECLARE SECTION; int numemp; char nomemp[10]; int numdep; EXEC SQL END DECLARE SECTION;

Bases de données - Yann Loyer11 Prologue (4) Section CONNECT : tout programme ProC doit effectuer une connexion à un SGBD Oracle avant daccéder aux données EXEC SQL CONNECT :user IDENTIFIED BY :password; Cette commande SQL doit être la première commande exécutable du programme ProC

Bases de données - Yann Loyer12 Corps de lapplication Cette partie contient le corps du programme ProC. Exemple #include EXEC SQL BEGIN DECLARE SECTION; varchar uid[20]; varchar pwd[20]; EXEC SQL END DECLARE SECTION; main( ) { strcpy(uid.arr,SCOTT); uid.len = strlen(uid.arr); strcpy(pwd.arr,TIGER); pwd.len = strlen(pwd.arr); EXEC SQL CONNECT :uid IDENTIFIED BY :pwd; printf(« connecté à Oracle comme utilisateur : %s », uid.arr); EXEC SQL CREATE TABLE VINS(NV number, Nom varchar(15), Domaine varchar(25)); printf(« Table VINS créée »); EXEC SQL COMMIT WORK; }

Bases de données - Yann Loyer13 Requêtes Deux façons de traiter les requêtes : 1.Requête renvoyant un seul n-uplet 2.Requête renvoyant un nombre quelconque de n-uplets

Bases de données - Yann Loyer14 Requêtes Requête renvoyant un seul n-uplet SELECT att 1,…,att n INTO :var 1, …, :var n FROM table 1,…,table m WHERE …

Bases de données - Yann Loyer15 Exemple Situation : Train ( client varchar(20), destination varchar(20), jour integer km integer ); Hypothèse : une seule destination par client Objectif : afficher la destination et le jour de Félix

Bases de données - Yann Loyer16 Exemple de programme #include void connexion(); void interrogation(); void déconnexion(); void compte_rendu(); main() { connexion(); interrogation(); déconnexion(); }

Bases de données - Yann Loyer17 Exemple de programme void connexion() { EXEC SQL begin declare section; char hs_login[8]; char hs_passwd[8]; EXEC SQL end declare section; strcpy(uid.arr,SCOTT); uid.len = strlen(uid.arr); strcpy(pwd.arr,TIGER); pwd.len = strlen(pwd.arr); EXEC SQL connect :hs_login identified by :hs_passwd ; compte_rendu(); }

Bases de données - Yann Loyer18 Exemple de programme void déconnexion() { EXEC SQL commit release; compte_rendu(); }

Bases de données - Yann Loyer19 Exemple de programme void interrogation() { EXEC SQL begin declare section; char hs_dest[20]; int hi_jour; EXEC SQL end declare section; EXEC SQL select destination, jour into :hs_dest, :hi_jour ; from train where client = « Félix »; compte_rendu(); printf( « Félix va à %s le jour %d », hs_dest, hi_jour ); }

Bases de données - Yann Loyer20 Exemple de programme void compte_rendu() { If (sqlca.sqlcode < 0) { printf( « Ordre non exécuté : %s », sqlca.sqlerrm.sqlerrmc); exit; }

Bases de données - Yann Loyer21 Requêtes Lorsque la requête retourne plusieurs n-uplets, le résultat est stocké dans un curseur DECLARE CURSOR OPEN CURSOR FETCH CLOSE CURSOR Un curseur est une zone de travail utilisée par Oracle pour stocker le résultat dune requête

Bases de données - Yann Loyer22 Exemple de programme void selection() { Char tampon[100]; EXEC SQL begin declare section; int hi_km; char hs_dest[20]; int i_dest; EXEC SQL end declare section; gets(tampon); hi_km = atoi(tampon); EXEC SQL DECLARE requête CURSOR FOR select destination from train where km < :hi_km ; EXEC SQL OPEN requête; compte_rendu();

Bases de données - Yann Loyer23 EXEC SQL FETCH requête INTO :hs_dest:i_dest ; /* i_dest variable indicatrice */ gestion_erreur( ); while ((sqlca.sqlcode>=0) && (sqlca.sqlcode!=1403)) { if (i_dest == -1) printf(« destination inconnue »); else printf(« %s\n »,hs_dest); EXEC SQL FETCH requête INTO :hs_dest:i_dest ; gestion_erreur( ); } EXEC SQL CLOSE requête; gestion_erreur( ); }