La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.

Présentations similaires


Présentation au sujet: "Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS."— Transcription de la présentation:

1 Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS

2 Faculté I&C, Claude Petitpierre, André Maurer Libraries pour appels SQL depuis Javascript

3 Faculté I&C, Claude Petitpierre, André Maurer Table utilisée dans les exemples idvregioncepageannee 1Lavauxchasselas2005 3Chiantisangiovese2002 2Bourgognepinot noir2000

4 Faculté I&C, Claude Petitpierre, André Maurer Appels depuis Javascript (librairie database.js) var result = database.query("select * from vins") // au retour de la query: [ {idv:1,cepage:chasselas,region:Lavaux,annee:2005}, {id:2,cepage:sangiovese,annee:2002}, {id:3, region:Bourgogne} ] // Les champs nulls napparaissent pas dans lobjet.

5 Faculté I&C, Claude Petitpierre, André Maurer Accès aux champs [ {idv:1,cepage:chasselas...},{id:2,ccepage:...},{id:3} ] result[0].idv result[0].cepage result[0].region result[1].idv result[1].cepage result[1].region result[2].idv result[2].cepage result[2].region result.length lignes

6 Faculté I&C, Claude Petitpierre, André Maurer Accès aux champs [ {idv:1,cepage:chasselas...},{id:2,ccepage:...},{id:3} ] Si un champ, par exemple result[0].cepage, nest pas défini, on a typeof result[0].cepage == undefined Sil ny a quune ligne, elle est quand même placée dans [ ]

7 Faculté I&C, Claude Petitpierre, André Maurer Lecture dun objet dont les champs sont inconnus var result = [ {'a':2, 'b':3} ] for ( key in result [0] ) { alert( result [0] [key] ) }

8 Faculté I&C, Claude Petitpierre, André Maurer Traitement des erreurs var result try { result = database.query("select * from vins") } catch(e) { alert(Erreur: +e) return } // continue ici, en cas de succès if (result.length==0) { // pas de ligne retournée }

9 Faculté I&C, Claude Petitpierre, André Maurer Passage des paramètres Quatre façons de passer des paramètres à une commande SQL Concaténation de chaînes Remplacement du signe ? par une variable Remplacement du signe ? par un tableau Remplacement du signe ? par un objet

10 Faculté I&C, Claude Petitpierre, André Maurer Passage de paramètres par concaténation var an=2003, cep='chasselas' pas dans la chaîne var result = database.query( "select * from vins where annee="+an +" and cepage='"+ cep +"'") apostrophes encadrant la chaîne Chaîne produite : select * from vins where annee=2003 and cepage=chasselas

11 Faculté I&C, Claude Petitpierre, André Maurer Passage de paramètres par ? var an=2003, cep=chasselas var result = database.query( "select * from vins where annee=? and cepage=?", an, cep ) apostrophe Chaîne produite: select * from vins where annee=2003 and cepage=chasselas "

12 Faculté I&C, Claude Petitpierre, André Maurer Tableau de valeurs var data = [0, Barolo, nebbiolo, null] var result = database. query( 'insert into vins values (?), data ) Chaîne produite: insert into vins values (0, Barolo, nebbiolo, null) // les chaînes de data sont automatiquement entourées de

13 Faculté I&C, Claude Petitpierre, André Maurer Objet en paramètre var vin = {'region':'Bordeaux', 'cepage':'merlot'} var result = database. query( 'insert into vins set ?, vin ) Chaîne produite: insert into vins set region=Bordeaux cepage=merlot

14 Faculté I&C, Claude Petitpierre, André Maurer Points dinterrogation Il peut y avoir plusieurs ? A chaque ? doit correspondre un argument (il peut y en avoir plusieurs après la query) Un ? peut être remplacé par –un entier ou un réel –une string –un tableau –un objet Evidemment, lordre des paramètres doit correspondre aux ?, le système ne teste pas sil est pertinent

15 Faculté I&C, Claude Petitpierre, André Maurer Deux façons de construire un objet Javascript unVin = {idv:0, Valais, cepage:chasselas, annee:2004} var vin = { } vin.idv = 0 vin.region = Valais vin.cepage = chasselas vin.annee = 2004

16 Faculté I&C, Claude Petitpierre, André Maurer Insertion de sets create table unSet ( ensemble set ('aa', 'bb', 'cc') ) insert into unSet set ensemble='aa,cc' Attention, pas despaces

17 Faculté I&C, Claude Petitpierre, André Maurer Insertion de dates create table temps ( jourHeure datetime ) Date.prototype.sql = function () { return this.getFullYear() + "-" + (this.getMonth()+1) + "-" + this.getDate() + " " + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds() } function execute () { try { database.query("insert into temps set jour=?", new Date().sql()) } catch (e) { alert(e + " >") } }

18 Faculté I&C, Claude Petitpierre, André Maurer Clé primaire générée var vin = {'region':'Bordeaux', 'cepage':'merlot'} var result = database.query( 'insert into vins set ?, vin ) (La base de données génère automatiquement la clé primaire. On peut lobtenir grâce à la commande suivante) idNb = database.last_insert_id()


Télécharger ppt "Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS."

Présentations similaires


Annonces Google