Compte-rendu du stage EmoGuide

Dimension: px
Commencer à balayer dès la page:

Download "Compte-rendu du stage EmoGuide"

Transcription

1 Compte-rendu du stage EmoGuide Mission : Développer un moteur de recherche de DVD / BluRay basé sur l'émotion pour Sony Picture Technologie : ASP.NET SCHMITT Vivien Développeur Logiciel (Niveau III) Entreprise : Sony Alsace Maître de Stage : Philippe TROESCH Période : Février / Juin /50

2 2/50

3 1 Remerciements Je remercie tous les intervenants qui ont joué un rôle dans mon avancement professionnel et dans la réussite de mes projets : MDPH de Strasbourg : pour la constitution de mon dossier TH dans les plus brefs délais, CRM de Mulhouse : pour l'organisation de la formation développeur logiciel, Frank Chatelot : pour m'avoir formé et motivé au métier de Développeur Logiciel, Sophie Thierry : pour son sens du professionnalisme, Cécile Magu : pour tout ce qu'elle à mis en place pour intégrer les stagiaires en entreprise, Marine Horr : pour avoir à plusieurs reprises débloquée mon dossier CAF, Philippe Troesch : pour avoir organisé mon stage et pour m'avoir transmis son professionnalisme et le sens des responsabilités en entreprise, Philippe Sommereisen : pour m'avoir donné des conseils techniques et mis sur le chemin à emprunter. Jean Sissler : pour m'avoir fait confiance et pour avoir veillé à mon intégration dans le service, Sidonie Halbout : pour m'avoir fait confiance et pour les solutions logistiques qu'elle a mis en place pour favoriser ma réussite. Sylvette Roch et Marion Tchasen, et Philippe Sommereisen pour m'avoir co-voituré. Ainsi que toutes les personnes ayant contribué de près ou de loin à la réalisation de mon stage et à la réussite de ma formation. 3/50

4 Table des matières 1 Remerciements Présentation de l'entreprise SONY : Sony Corporation Sony Aslace Service Ingénierie : Pré-études et définition du projet Études des Requirements Functional Requirements Non-Functional Requirements Fun Easy to use Configuration du poste de travail Environnement de travail: Étude du projet et des cas d'utilisations Objectifs du Projet Cas d'utilisations Développement en dure d'une version test de l'application Redéfinition des priorités Conception de la Base de données Logiciel de modélisation de données Les trois étapes de la modélisation de données Phase de conception Modèle conceptuel de la BDD Description des tables Phase Logique Modèle logique de données Phase physique Modèle physique de données Description des tables Déploiement de la BDD avec SQL Server Requêtes SQL Requêtes de créations des tables Requêtes d'ajouts des contraintes d'intégrités Développement de l'interface ASP.NET Première version Seconde version Troisième version Mise en place de l'interaction de la BDD avec ASP Classes d'accès aux données DAL.cs Initialisation de la classe Gestion de la connexion Gestions des transactions L'appel des procédures stockées...26 a) Méthodes d'appels des Procédures stockées de lecture...26 b) Méthodes d'appels des Procédures stockées d'écriture Procédures stockées Procédures stockées de lecture avec SELECT /50

5 Procédures stockées d'écriture avec INSERT Événements d'appel de procédures stockées Chargement de la page Premier Chargement? Création dynamique des contrôles utilisateurs...29 a) Composant du Fronted...29 b) Clic sur le bouton «Inspire-me» Algorithme de Recherche Introduction Des caractéristiques quantifiables Définition des émotions Classification des émotions Le niveau d'intensité émotionnel La signature émotionnelle...34 a) Exemple de signature émotionnelle : Le type de public La proximité émotionnelle Le nombre de films dans la base de données Le nombre de résultats d'une recherche Les tables d'associations Formalisation de l'algorithme Algorithme Restrictif...36 a) La combinaison exact :...36 b) Probabilités d'obtenir un résultat...37 c) Intersection de plusieurs ensembles Algorithme Permissif Algorithme Modéré...40 a) Recherche des sous-ensemble...40 b) Cas d'utilisation des sous-ensemble Script SQL de l'algorithme de recherches Explication de l'algorithme Déclaration des champs avec DECLARE et SET Vérification des champs Lecture des champs avec SELECT Extraction des sous-chaînes avec SUBSTRING Recherche par intervalle avec BETWEEN Portabilité de la signature émotionnelle Algorithme implémenté Script finale de l'algorithme Appel de la Procédure depuis la DAL.cs Déclenchement par les contrôles utilisateurs Une classe pour l'algorithme Réflexions et évolutions à venir Les qualités de développements exigées : L'intégration du projet Côté Web Côté point de vente Les évolutions possibles du projet Quelques exemples d'évolutions /50

6 2 Présentation de l'entreprise SONY : 2.1 Sony Corporation L'entreprise a été créée le 7 mai 1946 par Mr Masaru Ibuka et Mr Akio Morita, le siège social se trouve à Tokyo. En 2011 il y avait employés répartis dans 4 grandes filiales : Sony Computer Entertainment. Sony Music Entertainment. Sony Pictures Entertainment. Sony Electronics Entertainment. Spécialisée dans l industrie, les activités de l'entreprise sont diverses, tel que la musique, la téléphonie en passant par les jeux vidéo, l informatique, l audio visuel, la photographie, l électronique et le cinéma. 6/50

7 2.2 Sony Aslace Créé en 1986, Sony Alsace comprend 531 employés en 2013 générant un chiffre d'affaire de 122 millions d'euros. Filières Métier : Business Ingénierie Opération Administration Service Ingénierie : Opérations Design et Développement Soft, électronique et mécanique Analyse Qualité Produit Support CSE 3 Pré-études et définition du projet Emoguide est un système de vente de DVD/BluRay dont les films sont organisés en fonction de leur charge émotionnelle. Le système doit être multi-plateforme, c'est à dire qu'il doit être accessible depuis différents types de clients tel qu'un PC, une tablette ou un Smartphone : Le système EmoGuide appuie son contenu sur plusieurs bases de données de films avec un niveau d'administration européen, national, régional et local. 7/50

8 4 Études des Requirements Après une visite rapide des locaux, j'ai pris connaissance des Requirements et des Cas d'utilisations du projet dont voici les principaux : 4.1 Functional Requirements 1 : E-Commerce - Shopper goes on special plan your perfect movie evening app on Smartphone, Tablet Device, or specific branded section on Homepage. 1.2 : Web application - link plan your evening to access WebEmoGuide 1.3 : Smartphone application (Android, ios?, Windows?) 1.4 : Tablet application (Android, ios?, Windows?) 2 : E-Commerce - Shopper gets title proposals according to his mood or desired mood. 2.1 : IN: Desired mood 2.2 : IN: Mood (To be converted in desired mood?) 2.3 : OUT: List of titles 3 : E-Commerce - Shopper can watch trailers and then click on buy now button. Further recommendations possible Customers who bought this movie also like : ACT: Watch trailers 3.2 : ACT: Buy (link to e-com buying system) 3.4 : OUT: like also (not in the scope? Given by e-com site) 4 : Retail - Shopper enters store and discovers over standard POS the Tablet standee, which is clearly branded as his personal movie night planner. (Mood o meter! Movie Butler!... Etc.) 4.1 : Dedicated Tablet 4.2 : Android application 4.3 : Eye-attractive design 5 : Retail - The best case scenario would be a link to the retail GMS. Trailer integration. When the shopper clicks on buy now a boarding pass is printed with the EAN of the title. ( Your check in for an awesome evening ) 5.1 : ACT: Watch trailers 5.2 : ACT: Buy (print EAN) 5.3 : GMS integration (???) 5.4 : Fun : boarding pass, check in for an awesome evening 6 : Retail -The shop employee will then scan the EAN and hand over the title. In case of a out of stock (OOS) situation, employee could order the title with discount voucher or download code if Multchannel.-> out of the EmoGuide scope? (Retail internal politic) 7 : Design must be flexible enough to include retail logo 7.1 : Flexible design (colors? Fonts?) 8/50

9 7.2 : Custom retail logo 8 : Database must be manageable on a regional, country, European level 9 : Licensee s must get access to the database for changes and inclusion of local titles 10 : Emotions must be able to be defined on a country level 11 : Specific retail campaigns must be included as well (e.g. FNAC - let s have fun week ) 11.1 : Customisable to add links with specific emomaps 11.2 : Date programmable events 12 : Timely restricted deals should be possible as well (e.g. Thank god it s Friday offers, only for Friday evenings for example) : See REQ : See REQ Cyclic events 13 : Trailer-ing should be included 4.2 Non-Functional Requirements Fun Plan your perfect evening Let s have a fun week Thanks god it s Friday offers Boarding pass Your check in for an awesome evening Easy to use From mood to cart 9/50

10 5 Configuration du poste de travail J'ai reçu mon Vaio sur lequel il a fallu installer et configurer les logiciels nécessaires à la réalisation de l'application. PC : Vaio Système : Windows XP 5.1 Environnement de travail: Perforce : outil de gestion et de configuration logiciel, travail et développement collaboratif, permet de conserver l'historique du développement de l'application et de gérer les accès concurrents. Visual Studio : développement avec C# et ASP.NET Open Model Sphere : logiciel de modélisation de BDD que nous avons utilisé lors de la phase de conceptualisation. SQL Server : serveur de BDD, permet de stoker les tables et les procédures stockées. Share Point : système de gestion documentaire 10/50

11 6 Étude du projet et des cas d'utilisations 6.1 Objectifs du Projet L'objectif du projet est de développer un prototype simplifié dans le but de faire une démonstration de faisabilité. Nous avons imaginé la structure de la base de données pour cette version, même si la version finale utilisera la base de données GraceNote. 6.2 Cas d'utilisations Ce schéma montre tous ce que les différents utilisateurs doivent pouvoir faire à partir de l'interface de la version de production de l'application. L'objectif principal est d'amener l'utilisateur à acheter un film. Le nombre de «clics» qui sépare l'arrivée de l'utilisateur sur la page de recherche du déclenchement de l'achat doit être le plus court possible (de 1 à 3 maximum). 11/50

12 7 Développement en dure d'une version test de l'application A partir des études préliminaires réalisées par Sony englobant les Requirements et les cas d'utilisations, j'ai développé une première version codée en dure sur mon PC personnel (en attendant le PC de l'entreprise). Cette version contenait l'interface graphique et les fonctions minimums : le menu du choix des émotions dans un «radio bouton liste» rempli par une collection ListItem : <asp:radiobuttonlist ID="RadioButtonList1" runat="server" AutoPostBack="True"> <asp:listitem>anger</asp:listitem> <asp:listitem>anticipation</asp:listitem> <asp:listitem>disgust</asp:listitem> <asp:listitem>fear</asp:listitem> <asp:listitem>joy</asp:listitem> <asp:listitem>sadness</asp:listitem> <asp:listitem>surprise</asp:listitem> <asp:listitem>trust</asp:listitem> </asp:radiobuttonlist> le bouton «Inspire Me» qui appel une méthode permettant, dans cette version d'ouvrir une connexion SQL et d'afficher l'émotion choisie : protected void btinspireme_click(object sender, EventArgs e) try //Ouverture de connection SQL sqlcs.open(); lbetatconnection.text = "Connection SQL Réussie"; if (RadioButtonList1.SelectedIndex > -1) lbchoixradiobuttonlist.text = "Vous avez choisis : " + RadioButtonList1.SelectedItem.Text; catch (Exception err1) lbetatconnection.text = "Erreur, vous n'êtes pas connecté! " + err1.tostring(); une chaîne de connexion SQL : string connectionsqlstring source=vivien-pc\sqlexpress; initial catalog=viv; integrated security=false; user id=viv; password=1234;"; 12/50

13 8 Redéfinition des priorités Nous avons avec mon responsable Philippe Troesch redéfini les cas d'utilisations à développer en priorité, en fonction du calendrier et de mes capacités. Nous avons décidé d'ajouter une page d'administration (Backend) permettant d'ajouter des films dans la base de données afin de pouvoir faire des tests de requêtes et d'affichage du résultat. Nous avons aussi décidé de remplacer les boutons par des cases à cocher puis par des Sliders Ajax afin de pouvoir affiner la recherche de films et de rendre la recherche multidimensionnelle en terme d'émotions. L'intensité des émotions étant codée sur un intervalle de 0 à 10 dans la base de données, la recherche se fait sur la proximité de ces valeurs. Il s'agit aussi de définir une formule de calcul de l'éloignement entre les émotions désirées et l'emprunte émotionnelle des films dans la base de données. 13/50

14 9 Conception de la Base de données Dans l'attente de plus de précisions quant à la base de données qui devra être utilisée par le projet EmoGuide, nous avons décidé de développer une base de données SQL pour le prototype de l'application. La base de données attendue est Gracenote appartenant à Sony et contenant plusieurs millions de films. 9.1 Logiciel de modélisation de données Nous avons décidé de travailler avec le logiciel libre de conception de données Open ModelSphere. 9.2 Les trois étapes de la modélisation de données C'est avec ce logiciel que nous ferons les 4 étapes de création d'une base de données que sont : la création du Modèle Conceptuel de données la création du Modèle Logique de données la création du Modèle Physique de données la génération du script SQL de création de la base de données 14/50

15 9.3 Phase de conception Dans cette phase nous avons imaginer un modèle simple et suffisant de base de données, en fonction des besoins définis par les Requirements mais aussi en fonction des besoins à venir Modèle conceptuel de la BDD Voici le modèle conceptuel de données contenant les tables de données et les tables d'associations avec leurs cardinalités. La plupart des cardinalités sont de type (1,N ) (1,N) sauf celle entre les tables Category_Values et Categories qui est de type (1,1) (1,N). 15/50

16 9.3.2 Description des tables Il y a deux types de tables dans notre base de données : les tables de données qui contiendront du contenu et les tables d'associations qui contiendront les informations nécessaires pour relier les tables de contenu entre elles. La table Film contient une clé primaire film_id, un numéro d'identification unique ean13, une chaîne title, une chaîne synopsis, une chaîne jacket et trailer. La table Emotion contient une clé primaire emotion_id et une chaîne emotion_value renseignant le nom de l'émotion (ex : Disgust, anger, Sadness...). La table Association_Emotions relie les tables Films et Emotions. La table Catégorie_Values contient une clé primaire category_value_id et un champ category_value qui représentera les différents types de publics : (Male, Female, Kid, Teenager...) La table Categories contient une clé primaire category_id et un champ category_value contenant les catégories générales de type de public (Gender, Age...). La table Association_Catégories relie les tables Catégorie Values et Catégorie. Par exemple le champ Gender de la table Catégories est associé aux champs Male et Female de la table Catégorie Values. 16/50

17 9.4 Phase Logique Le modèle logique de données donne une vision plus concrète de la situation. C'est une étape intermédiaire entre le modèle E/A (entité/association) et le modèle physique. Le but de la normalisation du modèle conceptuel en modèle logique est de supprimer les inconvénients comme la redondance des champs Modèle logique de données 17/50

18 9.5 Phase physique La phase physique consiste à créer à partir du modèle logique de données le modèle physique de données Modèle physique de données Le modèle physique permettra de générer le script SQL de création de la base de données que l'application utilisera Description des tables Les tables d'associations sont devenues des tables à part entière contenant les id des tables qu'elles relient. La table T_FilmAssociation_A contient les id des film (film_id), les id des émotions (emotion_id) et le niveau d'émotion (emotion_level). En d'autres termes, cette table contient les id des films associés id des émotions, dont chacune est exprimée avec un certain niveau d'intensité. 18/50

19 Déploiement de la BDD avec SQL Server Requêtes SQL Après avoir terminé la phase de conception de la base de données avec le logiciel Open ModelSpher, j'ai généré le script SQL de création des tables de données et d'associations ainsi que les contraintes d'intégrités qui les lient Requêtes de créations des tables Pour créer les tables SQL sur SQL Server on utilise principalement la fonction sql CREATE. Lorsque l'on créé une table il faut souvent y ajouter des champs dont l'id et ceux nécessaires au fonctionnement de l'application. CREATE TABLE T_Category_public_values ( category_value_id INT NOT NULL, category_value VARCHAR DEFAULT 'Intensité de la catégorie' NOT NULL, category_id INT NOT NULL ); CREATE TABLE T_Emotions ( emotion_id INT NOT NULL, emotion_value VARCHAR DEFAULT 0 NOT NULL ); CREATE TABLE T_FilmCategories_A ( fk_film_id INT NOT NULL, fk_category_value_id INT NOT NULL ); CREATE TABLE T_FilmEmotions_A ( emotion_level INT NOT NULL, emotion_id INT NOT NULL, film_id INT NOT NULL ); CREATE TABLE T_Films ( film_id INT NOT NULL, ean13 VARCHAR DEFAULT 'code ean13' NOT NULL, title VARCHAR DEFAULT 'Titre du film' NOT NULL, synopsis VARCHAR NULL, jacket VARCHAR NULL, trailer VARCHAR NULL ); CREATE TABLE T_public_categories ( category_id INT NOT NULL, public_category VARCHAR DEFAULT 'Categorie associée' NOT NULL ); 19/50

20 Requêtes d'ajouts des contraintes d'intégrités Avec SQL Server, les contraintes d'intégrité s'ajoutent après la création des tables à l'aide de la fonction sql ADD CONSTRAINT. Les contraintes d'intégrité permettent de définir le champ qui sera clé primaire et les liens entre les tables avec les clés secondaires. Si on souhaite modifier une table SQL qui existe déjà, on utilisera la fonction ALTER. Pour définir le champ qui servira de clé primaire, on utilise la propriété PRIMARY KEY. Celui-ci devra être nécessairement unique et de type INT. Pour définir le champ qui sera la clé secondaire, on utilisera cette fois-ci la propriété FOREIGN KEY. ALTER TABLE T_FilmCategories_A ADD CONSTRAINT fk_film_id PRIMARY KEY ( fk_film_id, fk_category_value_id) ; ALTER TABLE T_public_categories ADD CONSTRAINT pk_category_id PRIMARY KEY ( category_id) ; ALTER TABLE T_Category_public_values ADD CONSTRAINT pk_category_value_id PRIMARY KEY ( category_value_id) ; ALTER TABLE T_Emotions ADD CONSTRAINT pk_emotion_id PRIMARY KEY ( emotion_id) ; ALTER TABLE T_FilmEmotions_A ADD CONSTRAINT pk_film_emotion PRIMARY KEY ( emotion_id, film_id) ; ALTER TABLE T_Films ADD CONSTRAINT pk_filmsid PRIMARY KEY ( film_id) ; ALTER TABLE T_Category_public_values ADD CONSTRAINT fk_category_id FOREIGN KEY (category_id) REFERENCES T_public_categories; ALTER TABLE T_FilmCategories_A ADD CONSTRAINT fk_category_values_id FOREIGN KEY (fk_category_value_id) REFERENCES T_Category_public_values; ALTER TABLE T_FilmEmotions_A ADD CONSTRAINT fk_emotion_id FOREIGN KEY (emotion_id) REFERENCES T_Emotions; ALTER TABLE T_FilmEmotions_A ADD CONSTRAINT fk_film_id FOREIGN KEY (film_id) REFERENCES T_Films; 20/50

21 ALTER TABLE T_FilmCategories_A ADD CONSTRAINT fk_films_id_a FOREIGN KEY (fk_film_id) REFERENCES T_Films; 11 Développement de l'interface ASP.NET 11.1 Première version L'interface de la première version de l'application était composée des composants suivants : 11.2 Liste de radio bouton pour choisir des émotions (recherche unidimensionnelle) Un bouton «Inspire me» pour déclencher la recherche de films Un cadre dans lequel apparaît le résultat de la recherche. Seconde version L'interface de la deuxième version était composée d'une liste de cases à cocher de manière à pouvoir sélectionner plusieurs émotions pour effectuer une recherche. Les résultats de la recherche s'affichaient cette fois ci dans un «UpdatePanel» pour éviter de recharger toute la page à chaque recherche (multidimensionnelle). 21/50

22 11.3 Troisième version Le menu de recherche des émotions se présente sous forme de «Sliders Ajax» permettant de renseigner l'intensité des émotions désirées. (La table SQL «T_FilmEmotion_A» contient une colonne «emotionlevel» ayant pour intervalle de valeur possible [0-10] correspondant respectivement au minimum et au maximum du niveau d'émotion possible). Page d'accueil de la recherche : 22/50

23 Page du Backend d'administration 23/50

24 12 Mise en place de l'interaction de la BDD avec ASP L'accès aux données se fait par l'intermédiaire de la classe d'accès aux données DAL.cs qui, suite aux déclenchement d'un événement, appelle une procédures stockée de lecture ou d'écriture Classes d'accès aux données DAL.cs La DAL.cs est une classe fournissant les méthodes d'accès aux données depuis ASP.NET donnant la possibilité de lire et d'écrire dans la base de données. Cette classe est composée de quatre parties : Initialisation de la classe public DAL() InitializeComponent(); public DAL(IContainer container) container.add(this); InitializeComponent(); La classe doit implémenter l'interface IContainer qui prend en charge des méthodes permettant d'ajouter, de supprimer et de récupérer des composants. Les conteneurs sont des objets qui contiennent logiquement plusieurs composants. IContainer fournit des fonctionnalités aux conteneurs Gestion de la connexion private void openconnection() if (CnEmoGuide.State!= System.Data.ConnectionState.Open) CnEmoGuide.Open(); private void closeconnection() if (CnEmoGuide.State!= System.Data.ConnectionState.Closed) CnEmoGuide.Close(); On vérifie qu'on est déconnecté avant d'ouvrir une connexion et inversement on vérifie que la connexion n'est pas déjà fermée avant de la couper. 24/50

25 Gestions des transactions Les transactions sont des objets héritant de la classe abstraite DBTransaction. Les transactions SQL on l'avantage de pouvoir gérer des opérations SQL sur plusieurs tables. En cas d'échec d'une des requêtes SQL, on pourra annuler toutes les autres requêtes. Les transactions se font en plusieurs étapes : ouverture de la transaction, lancement de la transaction et annulation de la transaction si nécessaire. //Start Transaction public SqlTransaction starttransaction() SqlTransaction returnvalue = null; try openconnection(); returnvalue = CnEmoGuide.BeginTransaction(); catch (Exception ex) Trace.Write(ex.Message); //throw ex; return returnvalue; //Commit Transaction public void committransaction(sqltransaction sqltrans) try if (sqltrans!= null) sqltrans.commit(); catch (Exception ex) throw ex; closeconnection(); //Rollback Transaction public void rollbacktransaction(sqltransaction sqltrans) try if (sqltrans!= null) sqltrans.rollback(); catch (Exception ex) throw ex; closeconnection(); 25/50

26 a) L'appel des procédures stockées Méthodes d'appels des Procédures stockées de lecture //Appel la Procédure Stockée de lecture de la liste d'émotions : SP_GetEmotions public DsDB.SP_GetEmotionsDataTable getemotions() DsDB.SP_GetEmotionsDataTable returntable = new DsDB.SP_GetEmotionsDataTable(); SP_GetEmotions.Fill(returnTable); return returntable; //Appel SP_GetFilmsDataTable qui renvoie les film_id en fonction des emotions_id sélectionnées public DsDB.SP_GetFilmsDataTable getfilms(int32 emotion_id) = emotion_id; DsDB.SP_GetFilmsDataTable returntablegetfilms = new DsDB.SP_GetFilmsDataTable(); SP_GetFilms.Fill(returntableGetFilms); b) return returntablegetfilms; Méthodes d'appels des Procédures stockées d'écriture //Méthode qui appelle la Procédure Stockée d'insertion de Films dans la T_Films avec l'objet SqlTransaction public Int32 addfilm(sqltransaction sqltrans, String ean13, String title, String synopsis, String jacket, String trailer, out string errormessage) Int32 returnvalue = -1; errormessage = ""; try if (sqltrans!= null) SP_Addfilm.SelectCommand.Transaction = sqltrans; //Action sur la table T_Films = ean13; = title; = synopsis; = jacket; = trailer; = DBNull.Value; SP_Addfilm.SelectCommand.ExecuteNonQuery(); if DBNull.Value) returnvalue = else throw (new Exception("Unkonwn error, film_id cannot be null, film not added")); else throw (new Exception("Invalid Sql Transaction, cannot add film")); catch (Exception ex) errormessage = "Error in data access layer : " + ex.message; return returnvalue; 26/50

27 Ajouter un film dans la base de données L'ajout d'un film dans la base de données se fait en deux temps : Il est en premier lieu nécessaire d'ajouter le film dans dans la base de données afin de générer son id (film_id) côtés SQL SERVER. Ce champ étant requis pour ajouter dans la base de données les émotions et les catégories de publics qui lui sont associées. La méthode d'accès aux données qui déclenche la procédures stockée d'insertion de film est de type INT32 car elle renvoie le film_id généré par l'ajout d'un film. Dans un second temps, on déclenche les méthodes d'accès aux données permettant d'appeler les procédures à partir du film_id. La table d'association FilmEmotion_A étant composée des id_film, des id_emotion et des emotion_level afin d'établir le lien entre les films et leur caractère émotionnel Procédures stockées Les procédures stockées déclenchées par la DAL dans ASP.NET sont enregistrées dans les serveur SQL SERVER. Il faudra configurer un utilisateur ayant les droits d exécution sur les procédures stockées afin d'autoriser l'application ASP à les appeler Procédures stockées de lecture avec SELECT La fonction sql SELECT est utilisée pour lire dans la base de données. Il faudra préciser les tables et les champs que l'on souhaite afficher. La commande DISTINCT complémentaire à SELECT permet d'éliminer les doublons : USE [emoguide] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE INT AS BEGIN SET NOCOUNT ON --on récupère l'id des films par rapport à l'id de l'émotions sélectionnées dans la ChekListBox SELECT DISTINCT T_Films.film_id, ean13, title, synopsis, jacket, trailer FROM T_Films, T_FilmEmotions_A WHERE (T_FilmEmotions_A.emotion_id ORDER BY title END 27/50

28 Procédures stockées d'écriture avec INSERT USE [emoguide] GO /****** Object: StoredProcedure [dbo].[sp_addfilm] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Script Date: 03/26/ :02:50 ******/ ALTER PROCEDURE INT OUTPUT AS BEGIN SET NOCOUNT ON VARCHAR(1000) IF <> 13 BEGIN RAISERROR('ean13 length must be 13',16,1) RETURN END IF EXISTS(SELECT film_id FROM T_Films WHERE ean13 BEGIN = 'Il existe déjà un film avec le code ean13 : [' + ']' RETURN END INSERT T_Films ( ean13, title, synopsis, jacket, trailer @trailer = END 28/50

29 12.3 Événements d'appel de procédures stockées Chargement de la page La méthode Page_Load se déclenche au chargement de la page. C'est dans cette méthode que l'on intégrera tout ce qui doit être présent au lancement de la page : menu de recherche, bouton de choix et de validation (contrôles utilisateurs). protected void Page_Load(object sender, EventArgs e) dtemotions = DefaultDAL.getEmotions(); createcontrolmenuemotiondefault(); //code à exécuter Premier Chargement? Il est possible de savoir si la page est chargée pour la première fois avec la variable IsPostBack if (!IsPostBack) //code à exécuter si la page n'est pas chargée en réponse à un client Création dynamique des contrôles utilisateurs Les contrôles utilisateurs sont des éléments essentiels à la création de l'interface utilisateur. Le projet bien que prototype doit être codé proprement afin qu'on puisse réutiliser des parties de codes pour la version de production. C'est pourquoi il a été décidé de coder les contrôles utilisateurs de manières dynamique. Cette façon de faire a l'avantage d'être plus facilement administrable et souple à l'évolution d'un projet. a) Composant du Fronted Le Fronted est l'interface que le client final va utiliser. C'est la page de recherche de film de l'application. Menu émotion : Le menu émotion va donner la possibilité au client de choisir le type d'émotion qu'il souhaite afin de choisir un film. Le client doit pouvoir faire varier les résultats de films affichés en faisant varier les émotions via ce menu. 29/50

30 Le menu émotion est créé dynamiquement par la fonction createcontrolmenuemotiondefault(). protected void createcontrolmenuemotiondefault() try foreach (DsDB.SP_GetEmotionsRow dremotion in dtemotions.rows) //Création dynamique des Labels monlabel = new Label(); monlabel.text = dremotion.emotion_value + " : "; //Form.Controls.Add(monLabel); PlaceHolderMenuEmotion.Controls.Add(monLabel); //Création dynamique des textebox montextbox = new TextBox(); montextbox.id = dremotion.emotion_id.tostring(); montextbox.text = 0 + ""; montextbox.width = 10; montextbox.enabled = false; //montextbox.enableviewstate = true; //Form.Controls.Add(monTextBox); PlaceHolderMenuEmotion.Controls.Add(monTextBox); //Boutton d'incrémentation / décrémentation du Textbox //Boutton moins monbouttonmoins = new Button(); monbouttonmoins.id = "boutonmoins" + dremotion.emotion_id; monbouttonmoins.text = "-"; //monbouttonmoins.onclientclick = "buttondown_click"; monbouttonmoins.click += new EventHandler(buttonDown_Click); //Form.Controls.Add(monBouttonMoins); PlaceHolderMenuEmotion.Controls.Add(monBouttonMoins); //Boutton Plus + monbouttonplus = new Button(); monbouttonplus.id = "boutonplus" + dremotion.emotion_id; monbouttonplus.text = "+"; //monbouttonplus.onclientclick = "buttonup_click"; monbouttonplus.click += new EventHandler(buttonUp_Click); //Form.Controls.Add(monBouttonPlus); PlaceHolderMenuEmotion.Controls.Add(monBouttonPlus); //Retour chariot dynamique Label lbbr = new Label(); lbbr.text = "" + "<br />"; PlaceHolderMenuEmotion.Controls.Add(lbBr); catch (Exception errtbdynamique) Response.Write(errTbDynamique.Message); 30/50

31 Menu age et genre protected void createcontrolmenucategorydefault() try //Radio bouton Liste CategoryAge radioboutonlistecategoryage = new RadioButtonList(); foreach (DsDB.SP_GetAgeRow drage in dtage) radioboutonlistecategoryage.items.add(drage.category_value); PlaceHolderMenuCategoryAge.Controls.Add(radioboutonlisteCategoryAge); //Radio bouton Liste CategoryGender radioboutonlistecategorygender = new RadioButtonList(); foreach (DsDB.SP_GetGenderRow drgender in dtgender) radioboutonlistecategorygender.items.add(drgender.category_value); PlaceHolderMenuCategoryGender.Controls.Add(radioboutonlisteCategoryGender); catch (Exception errlbcategorydynamique) Response.Write(errLbCategoryDynamique.Message); Bouton «Inspire-me» Le bouton «inspire-me» a lui été codé en dure directement dans le fichier default.aspx. L éventement clic sur ce bouton déclenche la méthode SaveControl : <asp:button ID="btInspireMe" runat="server" Text="Inspire Me" OnClick="btInspireMe_Click" /> b) Clic sur le bouton «Inspire-me» Les méthodes contenues dans la DAL.cs sont appelées par les événements déclenchés dans l'interface ASP comme, les clics sur le bouton «Inspire me» : public void SaveControl(object sender, EventArgs e) //On boucle dans les control du panel foreach (Control c in PlaceHolderMenuEmotion.Controls) if (c.gettype().tostring().equals("system.web.ui.webcontrols.textbox")) TextBox t = (TextBox)c; string txtid = t.id; string txtvlue = t.text; DsDB.SP_GetFilmsDataTable dtfilms; dtfilms = DefaultDAL.getFilms(int.Parse(txtID)); 31/50

32 foreach (DsDB.SP_GetFilmsRow drfilm in dtfilms.rows) ListItem li = new ListItem(drFilm.title + " - " + drfilm.jacket + " - " + drfilm.synopsis + " - " + drfilm.trailer); lbresultatrequete.items.add(li); //lbresultatrequete.datasource = li; Il était aussi question de mettre à jour le résultat de recherche lorsque l'utilisateur modifie un paramètre de recherche. 32/50

33 13 Algorithme de Recherche 13.1 Introduction L'algorithme de recherche est le cœur du système EmoGuide car la proximité entre ce que cherche le client et ce que sélectionne l'algorithme sera déterminante pour provoquer un achat. J'avais suggéré au départ de créer une classe dans c# afin d'y implémenter l'algorithme de recherche, mais finalement, faute de temps, j'ai implémenté une partie de l'intelligence de recherche dans SQL SERVER sous forme de procédures stockées et une autre partie dans ASP. Cette manière de faire ne doit pas être utilisée en production pour plusieurs raisons : le nombre de requêtes SQL envoyées peut dépasser les limites du serveur, de surcroît si plusieurs visiteurs utilisent l'application simultanément, le temps de latence pourrait considérablement augmenter, la maintenance et la mise à jours de l'algorithme sera difficile et aura une issue très probablement stochastique, la configuration des paramètres de l'algorithme est dispersée dans plusieurs fichiers. Cette version sera suffisante dans la version prototype pour obtenir un résultat de recherche et juger du résultat, mais les points précédents devrons être corrigés pour la version de production Des caractéristiques quantifiables Pour construire un algorithme de recherche et d'indexation, il est préférable de manipuler des métriques, c'est à dire des données numériques exprimant une réalité sous une forme quantifiable. Notre moteur de recherches donne aux clients la possibilité de faire varier deux paramètres principaux avant de lancer une recherche : le choix des émotions : composé d'un ensemble catégorisé d'émotions possédant chacune un niveau d'intensité paramétrable, le choix du type de public : composé des catégories GENRE et AGE Définition des émotions Les émotions se définissent comme étant une réaction d'adaptation très rapide provoquée par un changement brutale dans l'environnement. Les émotions bien qu'étant irrationnelles ont été définies et formalisées par les cognitivistes. Pour certains auteurs, comme Frijda, Lazarus ou Smith, les émotions auraient trois sous-composantes fondamentales : 33/50

34 une composante cognitive et expérientielle, une composante comportementale une composante physiologique. La sous-composante physiologique pourrait donner une indication sensationnelle de l'intensité émotionnelle d'un événement ou d'un film. La sous-composante cognitive, permettrait quand à elle de donner un sens et d'expliquer l'émotion ressentie Classification des émotions Ces mêmes auteurs ont catégorisé les émotions par factorisation et ont obtenu un ensemble d'émotions englobant toutes les émotions Le niveau d'intensité émotionnel Le menu de recherche de notre application s'appuie sur ces grandes catégories d'émotions. Nous exprimerons leur niveau d'intensité (emotion_level dans SQL) par un intervalle numéraire allant de 0 à 9. 0 exprimant le niveau minium et 9 le maximum La signature émotionnelle La signature émotionnelle correspond à la concaténation de la valeur des niveaux d'émotions d'un film. Pour des raisons pratique nous ordonnerons les émotions par ordre alphabétique, mais pour la version de production, il sera préférable de classer les émotions par ordre croissant de leur id dans la base SQL. 34/50

35 a) Exemple de signature émotionnelle : Un client manipule les Sliders du menu émotion et obtient la combinaison suivante : Anger Anticipation Disgust Fear Joy Sadness Surprise Trust :5 :7 :9 :0 :2 :4 :1 :6 La signature émotionnelle sera : Le type de public Le type de public à été défini par Sony dans les pré-études. Pour la version prototype le public sera composé de deux grands segments que sont l'age et le genre. Le segment age est composé de trois sous-catégories : Kid, Adult et TeenAger et le segment genre de deux : Male et Female La proximité émotionnelle Le but de notre algorithme sera de trouver dans la base de données les films dont la signature émotionnelle est proche de la combinaison générée par le client. Nous allons donc chercher des intervalles de valeurs correspondants et nous chercherons à ordonner les résultat par pertinence. Si elle existe, nous chercherons la signature exacte, puis nous chercherons les combinaisons qui s'éloignent de plus en plus de ce que le client recherche Le nombre de films dans la base de données La quantité de films présents dans la base de données aura une incidence sur le choix et la configuration de l'algorithme. Le temps de traitement du Server SQL va croître avec avec le nombre de films présents dans la base de données. La sensibilité de l'algorithme de recherche sera configurée en fonction du nombre de films présents dans la base. Pour configurer l'algorithme, nous disposons de plusieurs propriétés : la proximité entre la signature émotionnelle demandée par le client et la signature des films dans la base, nous utiliserons la fonction sql BETWEEN, l'acceptation des sous-ensembles : sélectionner les films qui possèdent soit l'ensemble des valeurs de la signature émotionnelle, ou soit seulement une partie, nous choisirons les opérateurs logiques (ET/OU) 35/50

36 S'il y a peu de films dans la base de données, nous choisirons un algorithme qui tolère un écart plus grand et/ou seulement une partie de la signature, entre ce que cherche le client et les films proposés. Donc nous configurerons notre BETWEEN à +/- 2 et/ou emploierons les opérateurs logiques OU. Si au contraire il y a beaucoup de films dans la base de données, nous choisirons un algorithme beaucoup plus restrictif en configurant le BETWEEN à +/-1 et nous emploierons l'opérateur logiques ET. Nous savons que nous pouvons faire varier aisément le nombre de résultats de recherches à l'aide de la fonction sql BETWEEN et des opérateurs logiques ET/OU Le nombre de résultats d'une recherche Il a été convenu que le nombre de films devant apparaître lors de chaque résultat de recherche devait être de 10 classés par ordre de pertinence Les tables d'associations Les requêtes de recherches porteront souvent sur les tables d'associations dans la base de données SQL : T_FilmEmotion_A et T_FilmCategories_A. La table T_FilmEmotion_A regroupe les id des films, les id des émotions et les emotion_level. La table T_FilmCategories_A regroupe les id des films et les id les categories_values Formalisation de l'algorithme Nous avons décidé de définir deux algorithmes de recherches, un restrictif adapté pour une base de données de plus de entrées et un permissif prévu pour les bases de données ayant moins d'entrées. Ces deux algorithmes font varier le nombre de films en résultat. Notons aussi, que l'usage de la fonction sql BETWEEN a aussi une incidence, que nous verrons plus tard a) Algorithme Restrictif La combinaison exact : On utilise l'opérateur ET logique dans la procédure stockée de recherche entre chaque émotion pour sélectionner un ensemble de films dont la signature correspond exactement à ce que l'on cherche. Avec cette façon de faire on multiplie les probabilités, donc on diminue nos chance de sélectionner un film. 36/50

37 Exemple : SELECT titre, image, synopsis FROM T_Film, T_FilmEmotion_A WHERE (emotion_id_1 AND emotion_level_1 AND (emotion_id_2 AND emotion_level_2 AND (emotion_id_3 AND emotion_level_3 AND etc... AND (public_id_1 AND public_value_1 b) Probabilités d'obtenir un résultat Les émotions ont un niveau d'intensité (emotion_level) s'étalant sur dix possibilités (de 0 à 9). Si on cherche un film en renseignant un niveau d'émotion (emotion_level), on a une chance sur dix qu'un film correspondent à ce niveau. Multiplié par le nombre de film, cette probabilité donnera le nombre de résultats correspondants à ma requête. Sachant que nous avons un panel de 8 émotions : Nombre de Films Sélectionnés : fs Nombre de films dans la BDD : fdb Nombre d'émotions : ne fs = 1/10 * 1/10 * 1/10 * 1/10 * 1/10 * 1/10 * 1/10 * 1/10 * fdb fs = 10^(-ne)*fdb Si notre base de données contient de films, nous aurons : fs = 10^-8 * fs = 0,01 Nous pouvons dire que nous avons une chance sur cent d'obtenir un résultat, ou que pour être sur d'obtenir un résultat, le client doit lancer cent requêtes de recherches... 37/50

38 c) Intersection de plusieurs ensembles En utilisant les opérateurs logiques ET, on obtient l'intersection des 8 ensembles que forment les émotions tel que nous les avons catégorisée. Le Schéma suivant pour l'exemple nous montre l'intersection de 3 ensembles : 38/50

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Introduction au développement en couches

Introduction au développement en couches Introduction au développement en couches Lorsque l on est débutant en programmation, on entend souvent dire qu il est important de développer ses applications en utilisant des couches, en séparant le code

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données Le modèle relationnel 1. Introduction 9 2. Rappels sur le stockage des données 9 2.1 Les différentes catégories de données 10 2.1.1 Les données de base 10 2.1.2 Les données de mouvement 10 2.1.3 Les données

Plus en détail

Les procédures stockées et les fonctions utilisateur

Les procédures stockées et les fonctions utilisateur Les procédures stockées et les fonctions utilisateur Z Grégory CASANOVA 2 Les procédures stockées et les fonctions utilisateur [08/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les procédures

Plus en détail

Les Utilisateurs dans SharePoint

Les Utilisateurs dans SharePoint Les Utilisateurs dans SharePoint La gestion des utilisateurs dans SharePoint SharePoint dont le cœur est l'outil collaboratif, Windows SharePoint Services. Chaque utilisateur (ou collaborateur) peut créer

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Conception et réalisation d une base de données

Conception et réalisation d une base de données SQL Server 2014 Conception et réalisation d une base de données (avec exercices pratiques et corrigés) Jérôme GABILLAUD Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

Dossier de livraison PPE Gestion Commerciale

Dossier de livraison PPE Gestion Commerciale Dossier de livraison PPE Gestion Commerciale p. 1 Sommaire I. Guide utilisateur -------------------------------------------------------- p3 II. III. IV. Base de données ---------------------------------------------------------

Plus en détail

Documentation technique

Documentation technique Documentation technique Table des matières I) Spécificités techniques:... 2 II) Diagramme de cas d'utilisation:... 2 III) Phase de test:... 3 IV) Précisions à propos de certains points du projet:... 6

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Introduction aux bases de données

Introduction aux bases de données 1/73 Introduction aux bases de données Formation continue Idir AIT SADOUNE idir.aitsadoune@supelec.fr École Supérieure d Électricité Département Informatique Gif sur Yvette 2012/2013 2/73 Plan 1 Introduction

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

DB Main Bien débuter.

DB Main Bien débuter. DB Main Bien débuter. Downloader depuis http://www.info.fundp.ac.be/~dbm/ L élaboration d une base de données se fait en 4 étapes : 1. L analyse conceptionnelle 2. Le MCD modèle conceptuel de données.

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Sage CRM NOTICE The information contained in this document is believed to be accurate in all respects but

Plus en détail

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site.

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site. Webmaster : Installation de l'incentive Objet : Récupération du tag de rotation à placer sur une page de votre site. Connectez vous sur votre compte webmaster, puis cliquez dans le menu sur «Tag de diffusion»

Plus en détail

ACCESS 2003. Auteur : THIERRY TILLIER Formateur informatique Les requêtes : étape 3

ACCESS 2003. Auteur : THIERRY TILLIER Formateur informatique Les requêtes : étape 3 ACCESS 2003 Auteur : THIERRY TILLIER Formateur informatique Les requêtes : étape 3 2/33 Copyright 2005 Tous droits réservés. www.coursdinfo.fr Table des matières Chapitre 1 Les requêtes-introduction...5

Plus en détail

Transaction. 1:débiter(1000) 2:créditer(1000)

Transaction. 1:débiter(1000) 2:créditer(1000) Transaction Il n'est pas rare qu'une opération se divise en plusieurs autres opérations élémentaires sur la base de données. Dans ce cas, l''état de la base de données avant l'opération est maintenue cohérent,

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Diffusion de médias interactifs au Palais de l Océan CORRIGÉ Diffusion de médias interactifs au Palais de l Océan

Diffusion de médias interactifs au Palais de l Océan CORRIGÉ Diffusion de médias interactifs au Palais de l Océan Diffusion de médias interactifs au Palais de l Océan CORRIGÉ Diffusion de médias interactifs au Palais de l Océan Liste des dossiers Barème indicatif Dossier 1 : Organisation du système de diffusion de

Plus en détail

Date: 09/11/15 www.crmconsult.com Version: 2.0

Date: 09/11/15 www.crmconsult.com Version: 2.0 Date: 9/11/2015 contact@crmconsult.fr Page 1 / 10 Table des matières 1 SUGARPSHOP : SCHEMA... 3 2 PRESENTATION... 4 3 SHOPFORCE WITH SCREENSHOTS... 5 3.1 CLIENTS... 5 3.2 ORDERS... 6 4 INSTALLATION...

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

TP3 : Ajout d'un modèle. Ajouter des Classes de modèle. 1- L approche Code First

TP3 : Ajout d'un modèle. Ajouter des Classes de modèle. 1- L approche Code First TP3 : Ajout d'un modèle 1- L approche Code First Dans cette section, vous ajouterez quelques classes pour gérer les films dans une base de données. Ces classes vont constituer la partie «modèle» de l'application

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Configurer les contrôles Windows Form

Configurer les contrôles Windows Form 1 Configurer les contrôles Windows Form Configurer les contrôles Windows Form Sommaire 1 Introduction... 2 2 Gestion des contrôles composés... 2 2.1 Qu est ce qu un contrôle composé... 2 2.2 Création d

Plus en détail

BTS SIO. Session 2013 2015

BTS SIO. Session 2013 2015 BTS SIO Services Informatiques aux Organisations Session 2013 2015 Collé Maxime Année 2013-2014 Option : SLAM Activité professionnelle N 1 NATURE DE L'ACTIVITE : DÉVELOPPEMENT DE L APPLICATION WEB «GESTION

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION NetSuite NOTICE The information contained in this document is believed to be accurate in all respects but

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Module: Programmation sites Web Dynamique

Module: Programmation sites Web Dynamique Module: Programmation sites Web Dynamique Formateur: A BENDAOUD LEÇON : MÉTHODES DE NAVIGATION Les différentes méthodes de navigation : Voici les différentes méthodes que nous allons expliciter dans cette

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

Accès au support technique produits et licences par le portail client MGL de M2Msoft.com. Version 2010. Manuel Utilisateur

Accès au support technique produits et licences par le portail client MGL de M2Msoft.com. Version 2010. Manuel Utilisateur Accès au support technique produits et licences par le portail client MGL de M2Msoft.com Version 2010 Manuel Utilisateur Access to M2Msoft customer support portal, mgl.m2msoft.com, 2010 release. User manual

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

Université Paris 1 Panthéon Sorbonne UFR 06. Fiche de TD VBA

Université Paris 1 Panthéon Sorbonne UFR 06. Fiche de TD VBA 1 / 13 Fiche de TD VBA L objectif de cette fiche est de faire un rappel (voire une présentation rapide) du langage de programmation VBA et de son usage sur des documents Excel et Access. Pour rappel, VBA

Plus en détail

Chapitre 9 Les métadonnées

Chapitre 9 Les métadonnées 217 Chapitre 9 Les métadonnées 1. De l'importance des métadonnées Les métadonnées Au-delà du contenu des données elles-mêmes d'un système, il est souvent très utile de connaître un minimum d'informations

Plus en détail

Formation ACCESS 2003

Formation ACCESS 2003 Formation ACCESS 2003 Livret 1 Introduction aux bases THIERRY TILLIER 2/16 Copyright 2007 Thierry Tillier Tous droits réservés. Introduction Objectif : Dans ce premier livret, vous apprendrez les bases

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Chapitre 4 La base de données

Chapitre 4 La base de données Chapitre 4 La base de données La Base de données INTRODUCTION 4 La Base de données INTRODUCTION Vectorworks permet de lier les objets du dessin à des formats de base de données (BDD), c'est-à-dire d'associer

Plus en détail

Bypass et filtre sur les requêtes destinées à la servlet W4

Bypass et filtre sur les requêtes destinées à la servlet W4 Note technique W4 Engine Bypass et filtre sur les requêtes destinées à la servlet W4 Cette note technique décrit le filtre de contrôle du bypass de la servlet W4. Versions de W4 Engine concernées : 5.0

Plus en détail

Mise en route avec l'application mobile Android. Installation

Mise en route avec l'application mobile Android. Installation Mise en route avec l'application mobile Android L'application mobile SanDisk +Cloud vous permet d'accéder à votre contenu et de gérer votre compte depuis votre appareil portable. Grâce à l'application

Plus en détail

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 3 Base de données, JDBC et Mapping Objet-relationnel L'objectif de ce TP est de vous faire pratiquer l'api JDBC qui permet d'accéder à une base de données

Plus en détail

Les bases de données (suite) Support de cours Pascal Ballet

Les bases de données (suite) Support de cours Pascal Ballet Les bases de données (suite) Support de cours Pascal Ballet La saisie et l'impression des données Les formulaires de saisie Les formulaires de saisie jouent deux rôles importants : - la mise en forme des

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

Audio and Web Conferencing services. Orange Business Services. Web Conferencing

Audio and Web Conferencing services. Orange Business Services. Web Conferencing Audio and Web Conferencing services Orange Business Services Web Conferencing web conferencing completely integrated audio and web services conference availability 24hrs/7days up to 100 participants complete

Plus en détail

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011 1 / 56 Développement Web Le modèle MVC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 24 janvier 2011 2 / 56 Objectif Objectif du cours Se familiariser avec

Plus en détail

Cours 10701A - Configuration et gestion de Microsoft SharePoint 2010

Cours 10701A - Configuration et gestion de Microsoft SharePoint 2010 Cours 10701A - Configuration et gestion de Microsoft SharePoint 2010 INTRODUCTION Ce cours apprend aux stagiaires comment installer, configurer et administrer SharePoint, ainsi que gérer et surveiller

Plus en détail

Utiliser Reporting Services pour des NewsLetter

Utiliser Reporting Services pour des NewsLetter Utiliser Reporting Services pour des NewsLetter SQL Server Reporting Services et les NewsLetters Le moteur de rapport inclus dans Microsoft SQL Server permet de créer de nombreux rapports classiques. Il

Plus en détail

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ]

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ] 8. Java et les bases de données Olivier Curé - UMLV [page 206 ] Java et les BD Plusieurs manières d'écrire du code Java accédant à une BD: Statement Level Interface (SLI) Solutions : SQLJ (SQL92) Call

Plus en détail

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition)

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition) Introduction A. Introduction 15 B. À qui s'adresse ce livre? 15 C. Qu est-ce qu une macro? 15 D. Quel intérêt de faire des macros? 16 E. Contenu de ce livre 16 L'éditeur de Visual Basic A. Introduction

Plus en détail

Révisions sur les Bases de données. Lycée Thiers - PC/PC*

Révisions sur les Bases de données. Lycée Thiers - PC/PC* Bases de données Architecture clients-serveur Architecture trois tiers Vocabulaire des BDD Algèbre relationnelle Création/modification d une table Commandes SQL de manipulation de tables Définition formelle

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Accès à une base de données MySql via Lazarus

Accès à une base de données MySql via Lazarus TP Mysql avec Lazarus - page 1 Accès à une base de données MySql via Lazarus Première partie : exécution de requêtes Corrigé Auteur: E. Thirion - dernière mise à jour : 10/07/2015 Le corrigé de ce TP téléchargement.

Plus en détail

SQL Server Management Studio Express

SQL Server Management Studio Express SQL Server Management Studio Express L'outil de gestion gratuit des bases Microsoft SQL Suite à mon précédent article, Microsoft a mis à disposition du public d'un outil gratuit de gestion des bases de

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Interface phpmyadmin Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter

Plus en détail

Tutoriel de création d une application APEX

Tutoriel de création d une application APEX Tutoriel de création d une application APEX 1 - Objectif On souhaite créer une application APEX destinée à gérer des dépenses et recettes. Ces dépenses et recettes seront classées par catégories. A partir

Plus en détail

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 Institut Géographique National Laboratoire COGIT GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 28 février 2007 Eric Grosso Résumé : Ce document a pour but de comprendre GeOxygene

Plus en détail

Sage CRM. 7.2 Guide de Portail Client

Sage CRM. 7.2 Guide de Portail Client Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,

Plus en détail

Globalisation et accessibilité

Globalisation et accessibilité 1 Globalisation et accessibilité Globalisation et accessibilité Sommaire Globalisation et accessibilité... 1 1 Introduction... 2 2 Une Application Multilingue... 2 2.1 La localisation... 2 2.1.1 Générer

Plus en détail

http://www.bysoft.fr

http://www.bysoft.fr http://www.bysoft.fr Flash Slideshow Module for MagentoCommerce Demo on http://magento.bysoft.fr/ - Module Slideshow Flash pour MagentoCommerce Démonstration sur http://magento.bysoft.fr/ V3.0 ENGLISH

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Reporting Services et SharePoint

Reporting Services et SharePoint Reporting Services et SharePoint Utiliser SharePoint comme source de données Dans un précédent article, nous avons pu apprendre comment créer un rapport utilisant une source de données XML La question

Plus en détail

Créer le modèle multidimensionnel

Créer le modèle multidimensionnel 231 Chapitre 6 Créer le modèle multidimensionnel 1. Présentation de SSAS multidimensionnel Créer le modèle multidimensionnel SSAS (SQL Server Analysis Services) multidimensionnel est un serveur de bases

Plus en détail

Plugin Payment-OnLine

Plugin Payment-OnLine Plugin Payment-OnLine Le plugin "Payment-Online" est un plugin technique dont l'objectif est de faciliter l'utilisation du paiement en ligne dans des applications Lutèce. Il se compose d'une librairie

Plus en détail

Il est nécessaire de connaître au moins un système d'exploitation de type graphique.

Il est nécessaire de connaître au moins un système d'exploitation de type graphique. GBD-030 Oracle Prise en main Saint-Denis à 9h30 5 jours Objectifs : Une formation Oracle complète pour découvrir tous les concepts du système et les différentes façons de les utiliser concrètement tout

Plus en détail

Formation PHP/MySQL. Pierre PATTARD. Avril 2005

Formation PHP/MySQL. Pierre PATTARD. Avril 2005 Formation PHP/MySQL Pierre PATTARD Julien BENOIT Avril 2005 Le PHP Langage interprété, côté serveur pages interprétées par le serveur web pas de compilation, code éditable avec un bloc notes. aucune différences

Plus en détail

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

Plus en détail

Guide utilisateur : Renouvellements de services de support via Oracle Store

Guide utilisateur : Renouvellements de services de support via Oracle Store Guide utilisateur : Renouvellements de services de support via Oracle Store Table des matières Renouvellements de services de support via Oracle Store... 3 Gagnez du temps, renouvelez votre contrat en

Plus en détail

Smile Mobile Dashboard

Smile Mobile Dashboard Smile Mobile Dashboard 1. Magento Extension The iphone and Android applications require access to data from your Magento store. This data is provided through an extension, available on Magento Connect

Plus en détail

SharePoint Output Caching dans un site Intranet

SharePoint Output Caching dans un site Intranet SharePoint Output Caching dans un site Intranet Comment utiliser le cache dans un site Publishing Afin de permettre l amélioration des performances de sa ferme MOSS utilisée pour le site portail corporate

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

Guide de démarrage rapide de Novell Vibe Mobile

Guide de démarrage rapide de Novell Vibe Mobile Guide de démarrage rapide de Novell Vibe Mobile Mars 2015 Mise en route L'accès mobile au site Web de Novell Vibe peut avoir été désactivé par votre administrateur Vibe. Si vous ne parvenez pas à accéder

Plus en détail

DÉBUTER AVEC APP INVENTOR

DÉBUTER AVEC APP INVENTOR Terminale STMG SIG Année 2013-2014 DÉBUTER AVEC APP INVENTOR App Inventor est un outil de développement en ligne pour les téléphones et les tablettes sous Android. App Inventor est un OS créé par Google,

Plus en détail

Administration Réseau

Administration Réseau M1 Réseaux Informatique et Applications Administration Réseau Date: 02/04/07 Auteurs: Alexis Demeaulte, Gaël Cuenot Professeurs: Patrick Guterl Table des matières 1Introduction...3 2HP OPENVIEW...3 3Les

Plus en détail

Pouvez-vous expliquer pourquoi «ok!» ne s'affichera-t-il pas dans ces conditions? Proposez un morceau de code qui corrige le problème. (coef.

Pouvez-vous expliquer pourquoi «ok!» ne s'affichera-t-il pas dans ces conditions? Proposez un morceau de code qui corrige le problème. (coef. 1 Citez au moins une des nouveautés introduites par PHP 5.3. (coef. 2) Réponse attendue : namespace, closure, objet DateTime... bref n'importe quoi de neuf dans PHP 5.3 Objectif : mesurer la culture G

Plus en détail

Activex Database Objet. C'est la couche d'accès aux bases de données, le SGBD (Système de Gestion de Base de Données) de VB.

Activex Database Objet. C'est la couche d'accès aux bases de données, le SGBD (Système de Gestion de Base de Données) de VB. ADO.NET Activex Database Objet Généralités ADO.NET. Permet d accéder aux bases de données à partir de VB.NET. ADO veut dire Activex Database Objet. C'est la couche d'accès aux bases de données, le SGBD

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Microsoft TechNet - Les End Points ou points de terminaison

Microsoft TechNet - Les End Points ou points de terminaison Page 1 sur 5 Plan du site Accueil International Rechercher sur Microsoft France : Ok Accueil TechNet Produits & Technologies Solutions IT Sécurité Interoperabilité Déploiement des postes de travail Scripting

Plus en détail

SLAM4 Gestion des cours et requêtage SQL Travaux pratiques

SLAM4 Gestion des cours et requêtage SQL Travaux pratiques 1. La base de données... 1 2. Création de l'application GestionCours... 2 2.1. Créer l'application «GestionCours» à l'aide de l'ide Visual Studio 2010... 2 2.2. Objectif : créer un formulaire permettant

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Guide d'installation rapide TE100-P1U

Guide d'installation rapide TE100-P1U Guide d'installation rapide TE100-P1U V2 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 3. Configuration du serveur d'impression 3 4. Ajout de l'imprimante sur votre

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

Installing the SNMP Agent (continued) 2. Click Next to continue with the installation.

Installing the SNMP Agent (continued) 2. Click Next to continue with the installation. DGE-530T 32-bit Gigabit Network Adapter SNMP Agent Manual Use this guide to install and use the SNMP Agent on a PC equipped with the DGE-530T adapter. Installing the SNMP Agent Follow these steps to install

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

SOMMAIRE EXMERGE. Chapitre 1 Installation EXMERGE 2. Chapitre 2 Modification ExMerge 6. Chapitre 3 Exécution sans erreur 23

SOMMAIRE EXMERGE. Chapitre 1 Installation EXMERGE 2. Chapitre 2 Modification ExMerge 6. Chapitre 3 Exécution sans erreur 23 Exchange 2003 Page 1 sur 32 SOMMAIRE Chapitre 1 Installation 2 1.1 Téléchargement 2 1.2 Installation 4 1.3 1 er lancement 5 Chapitre 2 Modification ExMerge 6 2.1 2 nd lancement 6 2.2 3ème lancement 11

Plus en détail