Envoyé par : Vinnie
Date : 30/07/2008 11:56
Bonjour, je ne sais pas si je poste dans la bonne section, mais je tente, je sais aussi qu'il y a un sujet avec presque le même titre, mais je n'ai pas trouvé la réponse à ma question dans celui ci.
Voilà, j'ai le code suivant :
var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); file.append("prunomatic.sqlite"); var storageService = Components.classes["@mozilla.org/storage/service;1"] .getService(Components.interfaces.mozIStorageService); var mDBConn = storageService.openDatabase(file); var statement = mDBConn.createStatement("INSERT INTO `disques` (`artiste`,`nom`,`annee`,`label`,`distributeur`,`boite_promo`,`classement`,`tmedia`) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8)"); statement.bindUTF8StringParameter(0, document.getElementById('artiste').value); statement.bindUTF8StringParameter(1, document.getElementById('titre').value); statement.bindInt32Parameter(2, document.getElementById('annee').value); statement.bindUTF8StringParameter(3, document.getElementById('label').value); statement.bindUTF8StringParameter(4, document.getElementById('distributeur').value); statement.bindUTF8StringParameter(5, document.getElementById('boite_promo').value); statement.bindUTF8StringParameter(6, document.getElementById('classement').value); statement.bindUTF8StringParameter(7, document.getElementById('tmedia').value); statement.execute(); document.getElementById('artiste').value =''; document.getElementById('titre').value =''; document.getElementById('annee').value =''; document.getElementById('label').value =''; document.getElementById('distributeur').value =''; document.getElementById('boitepromo').value ='';
il me revoie l'erreur ( qui est située dans le code au niveau du statement.execute(); :
Erreur : uncaught exception: [Exception... "Component returned >failure code: 0x80004005 (NS_ERROR_FAILURE)
mozIStorageStatement.execute" nsresult: "0x80004005
(NS_ERROR_FAILURE)" location: "JS frame ::
chrome://prunomatic/content/js/ajouterDisque.js :: ajouterDisque :: line 22" data: no]
dans sqlite manager ma table existe bien, avec le même script de connexion j'arrive à atteindre ma base. Je ne comprend pas pourquoi l'execution ne fonctionne pas.
Envoyé par : thx1138
Date : 30/07/2008 21:00
Salut,
je ne maitrise pas encore tout en SQLite mais dans ton exemple y'a une fois boitepromo et une autre fois boite_promo.
Envoyé par : Vinnie
Date : 30/07/2008 23:17
effectivement, j'ai pas enlevé ce bug, cela dit le code ne s'execute pas jusqu'ici ...
Envoyé par : thefab
Date : 31/07/2008 14:21
var statement = mDBConn.createStatement("INSERT INTO disques (artiste, nom, annee) VALUES (?, ?, ?)");
Je ne crois pas que tu ai besoin de spécifier l'index, un ? suffit.
Tu n'as pas besoin non plus de mettre entre guillemets sauf erreur (sauf si c'est un mot réservé).
Envoyé par : hfraser
Date : 02/12/2008 04:13
met tes parametres de string dans des " je suis pas sur pourquoi mais le bind semble plus agire comme un replace pour cette raison je fait mes propres binds avec des string.replace ce qui me permet d'ajouter et qualifier des params a volonter ...
j'utilise le bind seulement dans les templates en js directe il m'apporte toujours plus de probleme que d'autre chose.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.