SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Abel LIFAEFI MBULA
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java IntroductionMouna Torjmen
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 

Was ist angesagt? (20)

Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Le langage html
Le langage htmlLe langage html
Le langage html
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3Cours d'introduction aux HTML5 & CSS3
Cours d'introduction aux HTML5 & CSS3
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Cours php
Cours php Cours php
Cours php
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 

Andere mochten auch

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
 
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 Dynamikinfoclio.ch
 
Banco latinoamericano
Banco latinoamericanoBanco latinoamericano
Banco latinoamericanoAndyRPulido
 
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-syb2JufoBase
 
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 TISimon Chapleau
 
Négociation partenariale
Négociation partenarialeNégociation partenariale
Négociation partenarialeGeoParks
 
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 FIDfundafid
 
Le Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe NumeriqueLe Crowdfunding - Cafe Numerique
Le Crowdfunding - Cafe NumeriqueCarlos González
 

Andere mochten auch (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
 

Ähnlich wie Cours partie1 elgarrai zineb

Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
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 hibernateYouness Boukouchi
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
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 .netHamza SAID
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
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.2Laurent BUNIET
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns JavaVINOT Bernard
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
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.pdfBabacarDIOP48
 

Ähnlich wie 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
 
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
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 

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