Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# mozstorage et execute

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.

# Re: mozstorage et execute

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.

# Re: mozstorage et execute

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 ...

# Re: mozstorage et execute

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é).

# Re: mozstorage et execute

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.