SlideShare une entreprise Scribd logo
COURS : PROGRAMMATION
CLIENT/SERVERCLIENT/SERVER
11
ELGARRAI zineb 2010-2011
RAPPEL SUR POO
Objet?
Un objet est une entité cohérente rassemblant des
données et du code travaillant sur ses données
Classe?
Une classe peut être considérée comme un moule à
partir duquel on peut créer des objets
on dit que les classes sont la méta donnée des objets
22
RAPPEL SUR POORAPPEL SUR POO
L’encapsulation?
la séparation nette entre la partie publique d'un objet (ou
i f ) l d l' ili d l i i éinterface) seule connue de l'utilisateur de la partie privée ou
implémentation qui doit rester masquée.
Tous les langages orientés objet n'imposent pas de
respecter le principe d'encapsulation C'est donc aurespecter le principe d encapsulation. C est donc au
programmeur de veiller personnellement au grain.
33
RAPPEL POO
L’héritage?
L'héritage est le second des trois principes fondamentaux
d di i é bj Il h é d d i ldu paradigme orienté objet. Il est chargé de traduire le
principe naturel de Généralisation / Spécialisation
« La classe dérivée est une version spécialisée de sa classe« La classe dérivée est une version spécialisée de sa classe
de base »
L'héritage multiple est une extension au modèle d'héritageL héritage multiple est une extension au modèle d héritage
simple où l'on autorise une classe à posséder plusieurs
classes mères afin de modéliser une généralisation multiple.g p
44
RAPPEL POO
Classe abstraite?
Elle ne fournit pas d'implémentation pour certaines de ces
méthodes qui sont dites méthodes abstraites.
Une classe abstraite ne peut avoir d'instance.
But des classes abstraites:
définir un cadre de travail pour les classes dérivées en proposant
un ensemble de méthodes que l'on retrouvera tout au long de
l'arborescence Ce mécanisme est fondamental po r la mise enl'arborescence. Ce mécanisme est fondamental pour la mise en
place du polymorphisme.
55
RAPPEL POORAPPEL POO
Interface?
Une interface est semblable à une classe sans attribut (mais
pouvant contenir des constantes) dont toutes les méthodes sont
abstraites.
une classe implémente une interface si elle propose une
i lé i h d é h d dé i i fimplémentation pour chacune des méthodes décrites en interface
les méthodes décrites dans les interfaces sont, par définition,
polymorphes puisqu'elles sont implémentées de façonpolymorphes puisqu elles sont implémentées de façon
indépendante dans chaque classe implémentant une même
interface
66
RAPPEL POORAPPEL POO
Agrégation?
Un type de relation entre deux classes qui traduit cette fois
l l i E é d P èdles relations « Est composé de ... » ou « Possède … » ou encore « a
… ».
L'une des caractéristiques principale de l'agrégation est saL une des caractéristiques principale de l agrégation est sa
cardinalité
77
RAPPEL POO
Polymorphisme?
Il permet à une méthode d'adopter plusieurs formes sur
d l diffédes classes différentes.
L h ?La surcharge?
La surcharge est un mécanisme fréquemment proposé par
l l d t i t d’ i êles langages de poo et qui permet d’associer au même nom
de méthode / fonction / procédure différentes signatures.
88
RAPPEL POORAPPEL POO
Constructeur?
Méthode spéciale, à mi chemin entre la méthode de classe
l é h d d'i h é d é l bjet la méthode d'instance chargée de créer un nouvel objet
en mémoire et d'initialiser son état.
99
RAPPEL POORAPPEL POO
Message?
Unique moyen de communication fourni par les objets.
U i i d d i h bi llUne invocation de message se traduit habituellement par
l'activation d'une méthode.
D'ailleurs dans la plupart des langages orientés objetD ailleurs, dans la plupart des langages orientés objet
modernes, il n'y a pas de distinction entre les notions de
message et de méthodeg
1010
INTRODUCTION
A 2ARCHITECTURE 2 TIERS
1111
ARCHITECTURE 2-TIERS
Une architecture 2-tiers est composée de deux éléments, un
client et un serveur et où le tiers (Les parties) fait référence
non pas à une entité physique mais logiquenon pas à une entité physique mais logique.
Représentation :
1212
TACHES DU CLIENT
présentation des données
Envoie des requêtes (Demandes)
1313
TACHES DU SERVEUR
Sauvegarde des données
Traitement des requêtes (Réponse)
1414
ARCHITECTURE 2 -TIERS
En définitive et dans la perspective d'une architecture 2-tiers avec
n ser e r de base de données (SGBD) le schéma précédent seraun serveur de base de données (SGBD) le schéma précédent sera
plus exactement le suivant :
1515
AVANTAGES D'UNE ARCHITECTURE 2-TIERS
le développement d'une architecture 2-tiers peut être réalisé
rapidement toute chose étant égale par ailleurs à la
complexité du projetcomplexité du projet
La plupart des outils de développement dans l'architectureLa plupart des outils de développement dans l architecture
2-tiers sont robustes et mènent d'eux mêmes à des
techniques RAD (Rapid Application Development) quiq ( p pp p ) q
peuvent être utilisées pour s'assurer que les spécifications
des utilisateurs sont précisément et totalement prises en
compte.
1616
LES INCONVÉNIENTS D’UNE ARCHITECTURE 2-TIERSLES INCONVÉNIENTS D UNE ARCHITECTURE 2-TIERS
problèmes de contrôle des évolutions de versions et de redistributionproblèmes de contrôle des évolutions de versions et de redistribution
des applications
En termes de sécurité l'architecture 2-tiers peut être complexe dans laEn termes de sécurité l architecture 2-tiers peut être complexe dans la
mesure où il sera nécessaire à l'utilisateur d'avoir autant d'accès
protégé par mot de passe que d'accès serveursp g p p q
l'aspect propriétaire de l'application client. Le marché de
l'informatique se caractérise par volatilité de certaines de ses
entreprises qui n'ont pas de fait une très longue pérennité. Dans ce
contexte et ces contraintes, la question de la viabilité à long terme,
d' ppli ti li t pr priét ir t élém t i ifi tif àd'une application client propriétaire, est un élément significatif à
prendre en compte dans le choix d'une architecture 2-tiers.
1717
TECHNOLOGIE ADO NETTECHNOLOGIE ADO.NET
1818
TECHNOLOGIE ADO.NET
ADO .NET est un regroupement de types (classes,
interfaces, …) dans l'espace de nom System.Data
construits par Microsoft afin de manipuler des donnéesconstruits par Microsoft afin de manipuler des données
structurées dans le .NET Framework.
ADO NET échange toutes ses informations au formatADO .NET échange toutes ses informations au format
XML
1919
ADO.NETADO.NET
L'entité la plus importante d’ADO .NET permettant de
gérer les données en local dans une mémoire cache
complètement déconnectée de la source de données (donccomplètement déconnectée de la source de données (donc
indépendante de cette source) est le DataSet et la
collection de classes qui lui sont liées.q
2020
LE MODÈLE OBJET ADO.NET
2121
ADO.NET: DESCRIPTION DES OBJETS
Objet Description
Connection
Ouvre une connexion vers une source de
d é é ifidonnées spécifique
Command
Exécute une commande sur une source de
donnéesdonnées
Lit un flux de données à partir d'une source de
données en mode connecté Le mode d'accès
DataReader
données en mode connecté. Le mode d accès
est en lecture seule avec un curseur en avant
seulement.
DataSet
Représente un ensemble de données en mode
déconnecté. Il peut être constitué de
DataSet
plusieurs tables ainsi que des relations et
contraintes existant entre elles.
R lit D t S t t é t l i à22
DataAdapter
Remplit un DataSet et répercute les mises à
jour dans la source de données.
22
RÉSUMÉRÉSUMÉ
Pour le mode connecté:
1- Connection
2-Commanded
3-Reader
Pour le mode déconnecté:
1- Connection1 Connection
2-Commande
3 Dataset3-Dataset
4-Dataadapter
2323
FOURNISSEURS DE DONNÉES NETFOURNISSEURS DE DONNÉES .NET
FRAMEWORK
2424
RÔLE
Un fournisseur de données .NET Framework (FDNF) est
utilisé pour la connexion à une base de données,
l'exécution de commandes et l'extraction de résultatsl exécution de commandes et l extraction de résultats
Ces résultats sont soit traités directement, soit accédés à
distance entre couchesdistance entre couches.
Les FDNF créent une couche minimale entre la source de
données et votre code afin d'augmenter les performancesg p
sans sacrifier la fonctionnalité
2525
LES FDNF INCLUS DANS LE .NET FRAMEWORK.
Fournisseur de données .NET
Framework
Description
Fournisseur de données .NET
Framework pour SQL Server
Fournit un accès aux données pour Microsoft
SQL Server version 7.0 ou ultérieure. Utilise
l'espace de noms System Data SqlClientl espace de noms System.Data.SqlClient.
Fournisseur de données .NET
Framework pour OLE DB
Pour les sources de données exposées à l'aide de
OLE DB Utilise l'espace de nomsFramework pour OLE DB OLE DB. Utilise l espace de noms
System.Data.OleDb.
Fournisseur de données .NET Pour les sources de données exposées à l'aide de
Framework pour ODBC
p
ODBC. Utilise l'espace de noms
System.Data.Odbc.
F i d d é NET P l d d é O l LFournisseur de données .NET
Framework pour Oracle
Pour les sources de données Oracle. Le
fournisseur de données .NET Framework pour
Oracle prend en charge le logiciel client Oracle à
26
partir de la version 8.1.7 et utilise l'espace de
noms System.Data.OracleClient.
26
FDFNFDFN
Pour pouvoir faire appel aux classes proposées par ADO
.Net il est nécessaire d'inclure une référence à l'espace de
noms correspondant Vous pouvez soit inclure l'espacenoms correspondant. Vous pouvez soit inclure l espace
System.Data soit inclure des classes de cet espace comme
System.Data.OleDb ou System.Data.SqlClient ; touty y q ;
dépend de la source de données utilisée.
Imports System.Data
Imports System.Data.SqlClientp y q
2727
LA DIFFÉRENCE ENTRE LE MODE
CONNECTÉ ET EN MODE DÉCONNECTÉ
2828
LE MODE CONNECTÉLE MODE CONNECTÉ
Mode connecté :
Ce mode permet à un client de se connecter à un serveur de base de
d é l li f l i ldonnées et tant que le client ne fermera pas la connexion, le serveur
se souviendra de lui. Lorsque l'on désirera récupérer des informations
(SELECT) on les recevra au compte-gouttes c'est-à-dire une par(SELECT), on les recevra au compte gouttes, c est à dire une par
une.
2929
LE MODE DÉCONNECTÉLE MODE DÉCONNECTÉ
Mode déconnecté :
Le but de ce mode est de récupérer en un bloc une portion de
l b d d é fi d' ff d i l lla base de données afin d'effectuer des traitements en local
sur la machine du client. On aura donc une ouverture de
connexion à la base de données la récupération en un seulconnexion à la base de données, la récupération en un seul
bloc du résultat puis la fermeture de la connexion.
3030
RAPPEL SUR SQL
EXERCICESEXERCICES
3131
EXERCICES
1. Ecrire une requête qui permet de sélectionner tous les
produits que la société commercialise.
Aj d d i à l B D2. Ajouter des nouveaux produits à la B.D. ;
3. Supprimer le produit n° 1
M difi l d d i ° 24. Modifier le nom du produit n° 2
3232
Partie II :
Intégrer les accès aux données dans
le client en mode connectéle client en mode connecté
3333
L’OBJET CONNECTIONL OBJET CONNECTION
La connectivité à SQLServer est assurée par l'objet
SqlConnection de l'espace de noms
System Data SqlClientSystem.Data.SqlClient.
vous devrez utiliser l'objet OleDbConnection si votrevous devrez utiliser l objet OleDbConnection si votre
fournisseur est un fournisseur OleDb
L'ouverture d'une connexion est réalisée par la méthode
Open et la fermeture par la méthode Close.Open et la fermeture par la méthode Close.
3434
EXEMPLE DE GESTION D'UNE CONNEXION
Imports System.data
Imp rt S t m D t SqlCli ntImports System.Data.SqlClient
Public Sub MaConnection()
Dim strCon As String = "Data Source=localhost; IntegratedDim strCon As String = Data Source=localhost; Integrated
Security=SSPI;" & "Initial Catalog=Nom_BD“
trytry
Dim oConnection As SqlConnection = New SqlConnection(strCon)
oConnection.Open()
Console.WriteLine("Etat de la connexion : " & oConnection.State)
oConnection.Close()
catch e as Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try 35End Try
End Sub
35
L’OBJET COMMAND
Une fois la connexion vers une base de données effectuée, vous
pouvez exécuter une requête et récupérer son résultat en utilisant
l'objet Command.
La création d'un objet Command nécessite l'instanciation d'un objet
SqlCommand. Cet objet expose différentes méthodes Execute à
ili l l é l dutiliser selon le résultat attendu :
L méth d E ec teReader p t êtr tili é p r ré pér r n jLa méthode ExecuteReader peut être utilisée pour récupérer un jeu
d'enregistrements et retourne un objet DataReader.
La méthode ExecuteScalar récupère une valeur unitaireLa méthode ExecuteScalar récupère une valeur unitaire.
La méthode ExecuteNonQuery exécute une commande ne
retournant pas de lignes. 36retournant pas de lignes. 36
EXEMPLE D'UTILISATION D'UN OBJET COMMAND
Public Shared Sub Main()
Di C A S i "D S l lh d S i SSP " " i i lDim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial
Catalog=Northwind"
Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')"
Try
Dim oConnection As New SqlConnection(strCon)
Dim oCommand As New SqlCommand(strRequete, oConnection)q ( q , )
oConnection.Open()
oCommand.ExecuteNonQuery()
oConnection Close()oConnection.Close()
Catch e As Exception
Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message))
End TryEnd Try
End Sub 'Main
End Class 'CommandeSQL
3737
L'OBJET DATAREADERL OBJET DATAREADER
L'objet DataReader permet de récupérer d'une source de
données un flux en lecture seule en avant seulement (read
only forward only) Il résulte de l'exécution de la méthodeonly, forward only). Il résulte de l exécution de la méthode
ExecuteReader sur un objet Command.
L'objet DataReader ne stocke en mémoire qu'une seuleL objet DataReader ne stocke en mémoire qu une seule
ligne à la fois, permettant ainsi d'augmenter les
performances d'une application et d'en réduire la charge.
3838
L’OBJET DATAREADER
Il dé d' ili bj iIl est recommandé d'utiliser cet objet si :
V ' p b i d é li h d d éVous n'avez pas besoin de réaliser un cache des données
Vous traitez un jeu d'enregistrements trop important pour
être stocké en mémoireêtre stocké en mémoire
Vous souhaitez accéder à des données rapidement en
lecture seule en avant seulement
Comme l'objet DataReader a été conçu pour accéder aux
d é l d é il ê idonnées selon un mode connecté, il ne peut être transmis
entre différents tiers applicatifs ce que réalisait un
Recordset déconnecté. 3939
L’OBJET DATAREADERL OBJET DATAREADER
Par défaut, un DataReader charge une ligne entière en mémoire à
h q e ppel de l méthode Readchaque appel de la méthode Read.
Il est possible d'accéder aux valeurs de colonnes soit par leurs nomsIl est possible d accéder aux valeurs de colonnes soit par leurs noms
soit par leurs références ordinales.
Une solution plus performante est proposée permettant d'accéder
aux valeurs dans leurs types de données natifs (GetInt32, GetDouble,
G S i )GetString .)
Par exemple si la première colonne de la ligne indicée par 0 est dePar exemple si la première colonne de la ligne indicée par 0 est de
type int, alors il est possible de la récupérer à l'aide de la méthode
GetInt32 de l'objet DataReader. 4040
L’OBJET DATAREADER
Exemple:
Dim iColonne As IntegerDim iColonne As Integer
iColonne = oDataReader.GetInt32(0)
La méthode Close ferme un objet DataReader.
si l'objet Command utilisé contient des paramètres en sortie ou desj p
valeurs de retours, ils ne pourront être récupérés qu'a l'issue de la
fermeture du DataReader.
Pour augmenter les performances, il est parfois nécessaire de
soumettre plusieurs requêtes à la fois L'objet DataReader répond à cesoumettre plusieurs requêtes à la fois. L objet DataReader répond à ce
besoin avec la méthode NextResult permettant de passer d'un jeu
d'enregistrement à un autre.
4141
EXEMPLE D'EXTRACTION DE DONNÉES AVEC L'OBJET
D RDATAREADER
Dim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial
Catalog=North"
Dim strRequete As String = "SELECT CategoryID, CategoryName FROM Categories;« "
Try
Dim oConnection As New SqlConnection(strCon)Dim oConnection As New SqlConnection(strCon)
Dim oCommand As New SqlCommand(strRequete, oConnection)
oConnection.Open()
Dim oReader As SqlDataReader = oCommand.ExecuteReader()
Do
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0),
oReader.GetName(1))
While oReader Read()While oReader.Read()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetInt32(0), oReader.GetString(1))
End While
Loop While oReader.NextResult()
oReader.Close()
oConnection.Close()
Catch e As Exception 42Catch e As Exception
Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message))
End Try
42
TP1
Voir l’enoncé
4343

Contenu connexe

Tendances

Cours c#
Cours c#Cours c#
Cours c#
zan
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
kemenaran
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
ECAM Brussels Engineering School
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
kadzaki
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
Ameni Ouertani
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
cours Php
cours Phpcours Php
cours Php
mohamednacim
 
Le langage html
Le langage htmlLe langage html
Le langage html
Mohammed Amine Mostefai
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
webreaker
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
Abdoulaye Dieng
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Corrigé ccna1 chap10 couche application ccna cisco 5
Corrigé ccna1 chap10  couche application   ccna cisco 5Corrigé ccna1 chap10  couche application   ccna cisco 5
Corrigé ccna1 chap10 couche application ccna cisco 5abdoulaye camara
 
Cours SNMP
Cours SNMPCours SNMP
Cours SNMP
EL AMRI El Hassan
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
Heithem Abbes
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
ENSET, Université Hassan II Casablanca
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdf
Elomyakobi
 

Tendances (20)

Cours c#
Cours c#Cours c#
Cours c#
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
cours Php
cours Phpcours Php
cours Php
 
Le langage html
Le langage htmlLe langage html
Le langage html
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Corrigé ccna1 chap10 couche application ccna cisco 5
Corrigé ccna1 chap10  couche application   ccna cisco 5Corrigé ccna1 chap10  couche application   ccna cisco 5
Corrigé ccna1 chap10 couche application ccna cisco 5
 
Cours SNMP
Cours SNMPCours SNMP
Cours SNMP
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdf
 

En vedette

Présentation Cousumain / Pavillon Noir
Présentation Cousumain / Pavillon NoirPrésentation Cousumain / Pavillon Noir
Présentation Cousumain / Pavillon NoirSacha Brasseur
 
Dresdner zwinger
Dresdner zwingerDresdner zwinger
Dresdner zwingerLagimer
 
2010 05 03_marketing_2
2010 05 03_marketing_22010 05 03_marketing_2
2010 05 03_marketing_2
Martin Kreiensen
 
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen DynamikMartin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
infoclio.ch
 
Banco latinoamericano
Banco latinoamericanoBanco latinoamericano
Banco latinoamericano
AndyRPulido
 
Präsentation dells 150708_de
Präsentation dells 150708_dePräsentation dells 150708_de
Präsentation dells 150708_de
Christian Alberto Dellsperger Wharwood
 
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTEN
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTENCM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTEN
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTENtecom
 
La classe inversée et la baladodiffusion (AQPC)
La classe inversée et la baladodiffusion (AQPC)La classe inversée et la baladodiffusion (AQPC)
La classe inversée et la baladodiffusion (AQPC)Samuel Bernard
 
Jufo base tdot-syb2
Jufo base tdot-syb2Jufo base tdot-syb2
Jufo base tdot-syb2
JufoBase
 
Communiquer la valeur d'affaire des TI
Communiquer la valeur d'affaire des TICommuniquer la valeur d'affaire des TI
Communiquer la valeur d'affaire des TI
Simon Chapleau
 
Négociation partenariale
Négociation partenarialeNégociation partenariale
Négociation partenariale
GeoParks
 
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
DAE-Internetclub
 
Café Croissant Collaboratif sur le Personal Branding
Café Croissant Collaboratif sur le Personal BrandingCafé Croissant Collaboratif sur le Personal Branding
Café Croissant Collaboratif sur le Personal BrandingHélène Desliens
 
Articulación Sistemica FID
Articulación Sistemica FIDArticulación Sistemica FID
Articulación Sistemica FID
fundafid
 
Le Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe NumeriqueLe Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe Numerique
Carlos González
 
Chora na rampa
Chora na rampaChora na rampa
Chora na rampa
Karina Poli
 

En vedette (20)

Présentation Cousumain / Pavillon Noir
Présentation Cousumain / Pavillon NoirPrésentation Cousumain / Pavillon Noir
Présentation Cousumain / Pavillon Noir
 
Dresdner zwinger
Dresdner zwingerDresdner zwinger
Dresdner zwinger
 
2010 05 03_marketing_2
2010 05 03_marketing_22010 05 03_marketing_2
2010 05 03_marketing_2
 
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen DynamikMartin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
Martin Rickenbacher - Der vermessene Raum in seiner zeitlichen Dynamik
 
Banco latinoamericano
Banco latinoamericanoBanco latinoamericano
Banco latinoamericano
 
Français 1 bi deuxième partiel
Français 1 bi  deuxième partielFrançais 1 bi  deuxième partiel
Français 1 bi deuxième partiel
 
Präsentation dells 150708_de
Präsentation dells 150708_dePräsentation dells 150708_de
Präsentation dells 150708_de
 
Infographies FFTélécoms
Infographies FFTélécomsInfographies FFTélécoms
Infographies FFTélécoms
 
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTEN
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTENCM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTEN
CM9 - MIT EIGENLEISTUNG DANK/TROTZ WORD EIN OPTIMALES REDAKTIONSSYSTEM ERHALTEN
 
La classe inversée et la baladodiffusion (AQPC)
La classe inversée et la baladodiffusion (AQPC)La classe inversée et la baladodiffusion (AQPC)
La classe inversée et la baladodiffusion (AQPC)
 
Jufo base tdot-syb2
Jufo base tdot-syb2Jufo base tdot-syb2
Jufo base tdot-syb2
 
Communiquer la valeur d'affaire des TI
Communiquer la valeur d'affaire des TICommuniquer la valeur d'affaire des TI
Communiquer la valeur d'affaire des TI
 
Négociation partenariale
Négociation partenarialeNégociation partenariale
Négociation partenariale
 
2.0 Tracez un sinus
2.0 Tracez un sinus2.0 Tracez un sinus
2.0 Tracez un sinus
 
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
DAE Internetclub Bitcom Vortrag "New Deal on Data und die Wiederkehr der Disk...
 
La grèce
La grèceLa grèce
La grèce
 
Café Croissant Collaboratif sur le Personal Branding
Café Croissant Collaboratif sur le Personal BrandingCafé Croissant Collaboratif sur le Personal Branding
Café Croissant Collaboratif sur le Personal Branding
 
Articulación Sistemica FID
Articulación Sistemica FIDArticulación Sistemica FID
Articulación Sistemica FID
 
Le Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe NumeriqueLe Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe Numerique
 
Chora na rampa
Chora na rampaChora na rampa
Chora na rampa
 

Similaire à Cours partie1 elgarrai zineb

Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
Zineb ELGARRAI
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
Shili Mohamed
 
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiquesPHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiques
oumaimanouari
 
Design patterns
Design patternsDesign patterns
Design patterns
Eric Toguem
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
Ines Ouaz
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
StyvePola1
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEOpenCascade
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
Youness Boukouchi
 
Serveur node red
Serveur node redServeur node red
Serveur node red
FerchichiYassine
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
kemenaran
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
Hamza SAID
 
Cours spring
Cours springCours spring
Cours spring
mohamed el haddad
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
LarbaSAWADOGO2
 
Cours de C++, en français, 2002 - Cours 3.2
Cours de C++, en français, 2002 - Cours 3.2Cours de C++, en français, 2002 - Cours 3.2
Cours de C++, en français, 2002 - Cours 3.2
Laurent BUNIET
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
VINOT Bernard
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
mourad50
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
BabacarDIOP48
 

Similaire à Cours partie1 elgarrai zineb (20)

Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiquesPHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP_partie_.ppt,php_cours_mathematiques_informatiques
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOME
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
Cours spring
Cours springCours spring
Cours spring
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Cours de C++, en français, 2002 - Cours 3.2
Cours de C++, en français, 2002 - Cours 3.2Cours de C++, en français, 2002 - Cours 3.2
Cours de C++, en français, 2002 - Cours 3.2
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Springioc
SpringiocSpringioc
Springioc
 

Cours partie1 elgarrai zineb

  • 2. RAPPEL SUR POO Objet? Un objet est une entité cohérente rassemblant des données et du code travaillant sur ses données Classe? Une classe peut être considérée comme un moule à partir duquel on peut créer des objets on dit que les classes sont la méta donnée des objets 22
  • 3. RAPPEL SUR POORAPPEL SUR POO L’encapsulation? la séparation nette entre la partie publique d'un objet (ou i f ) l d l' ili d l i i éinterface) seule connue de l'utilisateur de la partie privée ou implémentation qui doit rester masquée. Tous les langages orientés objet n'imposent pas de respecter le principe d'encapsulation C'est donc aurespecter le principe d encapsulation. C est donc au programmeur de veiller personnellement au grain. 33
  • 4. RAPPEL POO L’héritage? L'héritage est le second des trois principes fondamentaux d di i é bj Il h é d d i ldu paradigme orienté objet. Il est chargé de traduire le principe naturel de Généralisation / Spécialisation « La classe dérivée est une version spécialisée de sa classe« La classe dérivée est une version spécialisée de sa classe de base » L'héritage multiple est une extension au modèle d'héritageL héritage multiple est une extension au modèle d héritage simple où l'on autorise une classe à posséder plusieurs classes mères afin de modéliser une généralisation multiple.g p 44
  • 5. RAPPEL POO Classe abstraite? Elle ne fournit pas d'implémentation pour certaines de ces méthodes qui sont dites méthodes abstraites. Une classe abstraite ne peut avoir d'instance. But des classes abstraites: définir un cadre de travail pour les classes dérivées en proposant un ensemble de méthodes que l'on retrouvera tout au long de l'arborescence Ce mécanisme est fondamental po r la mise enl'arborescence. Ce mécanisme est fondamental pour la mise en place du polymorphisme. 55
  • 6. RAPPEL POORAPPEL POO Interface? Une interface est semblable à une classe sans attribut (mais pouvant contenir des constantes) dont toutes les méthodes sont abstraites. une classe implémente une interface si elle propose une i lé i h d é h d dé i i fimplémentation pour chacune des méthodes décrites en interface les méthodes décrites dans les interfaces sont, par définition, polymorphes puisqu'elles sont implémentées de façonpolymorphes puisqu elles sont implémentées de façon indépendante dans chaque classe implémentant une même interface 66
  • 7. RAPPEL POORAPPEL POO Agrégation? Un type de relation entre deux classes qui traduit cette fois l l i E é d P èdles relations « Est composé de ... » ou « Possède … » ou encore « a … ». L'une des caractéristiques principale de l'agrégation est saL une des caractéristiques principale de l agrégation est sa cardinalité 77
  • 8. RAPPEL POO Polymorphisme? Il permet à une méthode d'adopter plusieurs formes sur d l diffédes classes différentes. L h ?La surcharge? La surcharge est un mécanisme fréquemment proposé par l l d t i t d’ i êles langages de poo et qui permet d’associer au même nom de méthode / fonction / procédure différentes signatures. 88
  • 9. RAPPEL POORAPPEL POO Constructeur? Méthode spéciale, à mi chemin entre la méthode de classe l é h d d'i h é d é l bjet la méthode d'instance chargée de créer un nouvel objet en mémoire et d'initialiser son état. 99
  • 10. RAPPEL POORAPPEL POO Message? Unique moyen de communication fourni par les objets. U i i d d i h bi llUne invocation de message se traduit habituellement par l'activation d'une méthode. D'ailleurs dans la plupart des langages orientés objetD ailleurs, dans la plupart des langages orientés objet modernes, il n'y a pas de distinction entre les notions de message et de méthodeg 1010
  • 12. ARCHITECTURE 2-TIERS Une architecture 2-tiers est composée de deux éléments, un client et un serveur et où le tiers (Les parties) fait référence non pas à une entité physique mais logiquenon pas à une entité physique mais logique. Représentation : 1212
  • 13. TACHES DU CLIENT présentation des données Envoie des requêtes (Demandes) 1313
  • 14. TACHES DU SERVEUR Sauvegarde des données Traitement des requêtes (Réponse) 1414
  • 15. ARCHITECTURE 2 -TIERS En définitive et dans la perspective d'une architecture 2-tiers avec n ser e r de base de données (SGBD) le schéma précédent seraun serveur de base de données (SGBD) le schéma précédent sera plus exactement le suivant : 1515
  • 16. AVANTAGES D'UNE ARCHITECTURE 2-TIERS le développement d'une architecture 2-tiers peut être réalisé rapidement toute chose étant égale par ailleurs à la complexité du projetcomplexité du projet La plupart des outils de développement dans l'architectureLa plupart des outils de développement dans l architecture 2-tiers sont robustes et mènent d'eux mêmes à des techniques RAD (Rapid Application Development) quiq ( p pp p ) q peuvent être utilisées pour s'assurer que les spécifications des utilisateurs sont précisément et totalement prises en compte. 1616
  • 17. LES INCONVÉNIENTS D’UNE ARCHITECTURE 2-TIERSLES INCONVÉNIENTS D UNE ARCHITECTURE 2-TIERS problèmes de contrôle des évolutions de versions et de redistributionproblèmes de contrôle des évolutions de versions et de redistribution des applications En termes de sécurité l'architecture 2-tiers peut être complexe dans laEn termes de sécurité l architecture 2-tiers peut être complexe dans la mesure où il sera nécessaire à l'utilisateur d'avoir autant d'accès protégé par mot de passe que d'accès serveursp g p p q l'aspect propriétaire de l'application client. Le marché de l'informatique se caractérise par volatilité de certaines de ses entreprises qui n'ont pas de fait une très longue pérennité. Dans ce contexte et ces contraintes, la question de la viabilité à long terme, d' ppli ti li t pr priét ir t élém t i ifi tif àd'une application client propriétaire, est un élément significatif à prendre en compte dans le choix d'une architecture 2-tiers. 1717
  • 19. TECHNOLOGIE ADO.NET ADO .NET est un regroupement de types (classes, interfaces, …) dans l'espace de nom System.Data construits par Microsoft afin de manipuler des donnéesconstruits par Microsoft afin de manipuler des données structurées dans le .NET Framework. ADO NET échange toutes ses informations au formatADO .NET échange toutes ses informations au format XML 1919
  • 20. ADO.NETADO.NET L'entité la plus importante d’ADO .NET permettant de gérer les données en local dans une mémoire cache complètement déconnectée de la source de données (donccomplètement déconnectée de la source de données (donc indépendante de cette source) est le DataSet et la collection de classes qui lui sont liées.q 2020
  • 21. LE MODÈLE OBJET ADO.NET 2121
  • 22. ADO.NET: DESCRIPTION DES OBJETS Objet Description Connection Ouvre une connexion vers une source de d é é ifidonnées spécifique Command Exécute une commande sur une source de donnéesdonnées Lit un flux de données à partir d'une source de données en mode connecté Le mode d'accès DataReader données en mode connecté. Le mode d accès est en lecture seule avec un curseur en avant seulement. DataSet Représente un ensemble de données en mode déconnecté. Il peut être constitué de DataSet plusieurs tables ainsi que des relations et contraintes existant entre elles. R lit D t S t t é t l i à22 DataAdapter Remplit un DataSet et répercute les mises à jour dans la source de données. 22
  • 23. RÉSUMÉRÉSUMÉ Pour le mode connecté: 1- Connection 2-Commanded 3-Reader Pour le mode déconnecté: 1- Connection1 Connection 2-Commande 3 Dataset3-Dataset 4-Dataadapter 2323
  • 24. FOURNISSEURS DE DONNÉES NETFOURNISSEURS DE DONNÉES .NET FRAMEWORK 2424
  • 25. RÔLE Un fournisseur de données .NET Framework (FDNF) est utilisé pour la connexion à une base de données, l'exécution de commandes et l'extraction de résultatsl exécution de commandes et l extraction de résultats Ces résultats sont soit traités directement, soit accédés à distance entre couchesdistance entre couches. Les FDNF créent une couche minimale entre la source de données et votre code afin d'augmenter les performancesg p sans sacrifier la fonctionnalité 2525
  • 26. LES FDNF INCLUS DANS LE .NET FRAMEWORK. Fournisseur de données .NET Framework Description Fournisseur de données .NET Framework pour SQL Server Fournit un accès aux données pour Microsoft SQL Server version 7.0 ou ultérieure. Utilise l'espace de noms System Data SqlClientl espace de noms System.Data.SqlClient. Fournisseur de données .NET Framework pour OLE DB Pour les sources de données exposées à l'aide de OLE DB Utilise l'espace de nomsFramework pour OLE DB OLE DB. Utilise l espace de noms System.Data.OleDb. Fournisseur de données .NET Pour les sources de données exposées à l'aide de Framework pour ODBC p ODBC. Utilise l'espace de noms System.Data.Odbc. F i d d é NET P l d d é O l LFournisseur de données .NET Framework pour Oracle Pour les sources de données Oracle. Le fournisseur de données .NET Framework pour Oracle prend en charge le logiciel client Oracle à 26 partir de la version 8.1.7 et utilise l'espace de noms System.Data.OracleClient. 26
  • 27. FDFNFDFN Pour pouvoir faire appel aux classes proposées par ADO .Net il est nécessaire d'inclure une référence à l'espace de noms correspondant Vous pouvez soit inclure l'espacenoms correspondant. Vous pouvez soit inclure l espace System.Data soit inclure des classes de cet espace comme System.Data.OleDb ou System.Data.SqlClient ; touty y q ; dépend de la source de données utilisée. Imports System.Data Imports System.Data.SqlClientp y q 2727
  • 28. LA DIFFÉRENCE ENTRE LE MODE CONNECTÉ ET EN MODE DÉCONNECTÉ 2828
  • 29. LE MODE CONNECTÉLE MODE CONNECTÉ Mode connecté : Ce mode permet à un client de se connecter à un serveur de base de d é l li f l i ldonnées et tant que le client ne fermera pas la connexion, le serveur se souviendra de lui. Lorsque l'on désirera récupérer des informations (SELECT) on les recevra au compte-gouttes c'est-à-dire une par(SELECT), on les recevra au compte gouttes, c est à dire une par une. 2929
  • 30. LE MODE DÉCONNECTÉLE MODE DÉCONNECTÉ Mode déconnecté : Le but de ce mode est de récupérer en un bloc une portion de l b d d é fi d' ff d i l lla base de données afin d'effectuer des traitements en local sur la machine du client. On aura donc une ouverture de connexion à la base de données la récupération en un seulconnexion à la base de données, la récupération en un seul bloc du résultat puis la fermeture de la connexion. 3030
  • 32. EXERCICES 1. Ecrire une requête qui permet de sélectionner tous les produits que la société commercialise. Aj d d i à l B D2. Ajouter des nouveaux produits à la B.D. ; 3. Supprimer le produit n° 1 M difi l d d i ° 24. Modifier le nom du produit n° 2 3232
  • 33. Partie II : Intégrer les accès aux données dans le client en mode connectéle client en mode connecté 3333
  • 34. L’OBJET CONNECTIONL OBJET CONNECTION La connectivité à SQLServer est assurée par l'objet SqlConnection de l'espace de noms System Data SqlClientSystem.Data.SqlClient. vous devrez utiliser l'objet OleDbConnection si votrevous devrez utiliser l objet OleDbConnection si votre fournisseur est un fournisseur OleDb L'ouverture d'une connexion est réalisée par la méthode Open et la fermeture par la méthode Close.Open et la fermeture par la méthode Close. 3434
  • 35. EXEMPLE DE GESTION D'UNE CONNEXION Imports System.data Imp rt S t m D t SqlCli ntImports System.Data.SqlClient Public Sub MaConnection() Dim strCon As String = "Data Source=localhost; IntegratedDim strCon As String = Data Source=localhost; Integrated Security=SSPI;" & "Initial Catalog=Nom_BD“ trytry Dim oConnection As SqlConnection = New SqlConnection(strCon) oConnection.Open() Console.WriteLine("Etat de la connexion : " & oConnection.State) oConnection.Close() catch e as Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try 35End Try End Sub 35
  • 36. L’OBJET COMMAND Une fois la connexion vers une base de données effectuée, vous pouvez exécuter une requête et récupérer son résultat en utilisant l'objet Command. La création d'un objet Command nécessite l'instanciation d'un objet SqlCommand. Cet objet expose différentes méthodes Execute à ili l l é l dutiliser selon le résultat attendu : L méth d E ec teReader p t êtr tili é p r ré pér r n jLa méthode ExecuteReader peut être utilisée pour récupérer un jeu d'enregistrements et retourne un objet DataReader. La méthode ExecuteScalar récupère une valeur unitaireLa méthode ExecuteScalar récupère une valeur unitaire. La méthode ExecuteNonQuery exécute une commande ne retournant pas de lignes. 36retournant pas de lignes. 36
  • 37. EXEMPLE D'UTILISATION D'UN OBJET COMMAND Public Shared Sub Main() Di C A S i "D S l lh d S i SSP " " i i lDim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=Northwind" Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')" Try Dim oConnection As New SqlConnection(strCon) Dim oCommand As New SqlCommand(strRequete, oConnection)q ( q , ) oConnection.Open() oCommand.ExecuteNonQuery() oConnection Close()oConnection.Close() Catch e As Exception Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message)) End TryEnd Try End Sub 'Main End Class 'CommandeSQL 3737
  • 38. L'OBJET DATAREADERL OBJET DATAREADER L'objet DataReader permet de récupérer d'une source de données un flux en lecture seule en avant seulement (read only forward only) Il résulte de l'exécution de la méthodeonly, forward only). Il résulte de l exécution de la méthode ExecuteReader sur un objet Command. L'objet DataReader ne stocke en mémoire qu'une seuleL objet DataReader ne stocke en mémoire qu une seule ligne à la fois, permettant ainsi d'augmenter les performances d'une application et d'en réduire la charge. 3838
  • 39. L’OBJET DATAREADER Il dé d' ili bj iIl est recommandé d'utiliser cet objet si : V ' p b i d é li h d d éVous n'avez pas besoin de réaliser un cache des données Vous traitez un jeu d'enregistrements trop important pour être stocké en mémoireêtre stocké en mémoire Vous souhaitez accéder à des données rapidement en lecture seule en avant seulement Comme l'objet DataReader a été conçu pour accéder aux d é l d é il ê idonnées selon un mode connecté, il ne peut être transmis entre différents tiers applicatifs ce que réalisait un Recordset déconnecté. 3939
  • 40. L’OBJET DATAREADERL OBJET DATAREADER Par défaut, un DataReader charge une ligne entière en mémoire à h q e ppel de l méthode Readchaque appel de la méthode Read. Il est possible d'accéder aux valeurs de colonnes soit par leurs nomsIl est possible d accéder aux valeurs de colonnes soit par leurs noms soit par leurs références ordinales. Une solution plus performante est proposée permettant d'accéder aux valeurs dans leurs types de données natifs (GetInt32, GetDouble, G S i )GetString .) Par exemple si la première colonne de la ligne indicée par 0 est dePar exemple si la première colonne de la ligne indicée par 0 est de type int, alors il est possible de la récupérer à l'aide de la méthode GetInt32 de l'objet DataReader. 4040
  • 41. L’OBJET DATAREADER Exemple: Dim iColonne As IntegerDim iColonne As Integer iColonne = oDataReader.GetInt32(0) La méthode Close ferme un objet DataReader. si l'objet Command utilisé contient des paramètres en sortie ou desj p valeurs de retours, ils ne pourront être récupérés qu'a l'issue de la fermeture du DataReader. Pour augmenter les performances, il est parfois nécessaire de soumettre plusieurs requêtes à la fois L'objet DataReader répond à cesoumettre plusieurs requêtes à la fois. L objet DataReader répond à ce besoin avec la méthode NextResult permettant de passer d'un jeu d'enregistrement à un autre. 4141
  • 42. EXEMPLE D'EXTRACTION DE DONNÉES AVEC L'OBJET D RDATAREADER Dim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=North" Dim strRequete As String = "SELECT CategoryID, CategoryName FROM Categories;« " Try Dim oConnection As New SqlConnection(strCon)Dim oConnection As New SqlConnection(strCon) Dim oCommand As New SqlCommand(strRequete, oConnection) oConnection.Open() Dim oReader As SqlDataReader = oCommand.ExecuteReader() Do Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0), oReader.GetName(1)) While oReader Read()While oReader.Read() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetInt32(0), oReader.GetString(1)) End While Loop While oReader.NextResult() oReader.Close() oConnection.Close() Catch e As Exception 42Catch e As Exception Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message)) End Try 42