var database = new SQLite(); database.openDatabase('database.sqlite',0);
database.executeSQL('select xxx from tabel'); results = database.getResults();
for(i=0; i<results.length; i++){ var xxx=results[i].xxx; }
database.closeDatabase();
UPDATE SCRIPT:
var database = new SQLite(); database.openDatabase('database.sqlite',0); database.executeSQL('update tabel set xxx=' + xxx+1); database.closeDatabase();
Du kan ikke: database.executeSQL('update tabel set xxx=' + xxx+1);
Det burda da være: database.executeSQL('update tabel set xxx=xxx+1');
I øverste tager du et felt i databasen og siger at den skal være lig med en variabel + 1 som tilædigvis også hedder xxx men som er uden for database scriptet som i alle tilfælde vil indsætte samme værdi i alle xxx felter i din tabel.
Det ville være det samme som at skrive: var i = 1; database.executeSQL('update tabel set xxx=' + i+1); hvilket vil sende følgende script til databasen: 'update tabel set xxx=2'
Eller:
var i = '1'; database.executeSQL('update tabel set xxx=' + i+1); bliver til: 'update tabel set xxx=11'
Synes godt om
Slettet bruger
26. november 2010 - 00:04#5
Du mangler bare en parantes - fordi: Dit: database.executeSQL('update tabel set xxx=' + xxx+1); Siger: En streng + noget = en streng + noget mere = stadig en streng.
Brug i stedet: database.executeSQL('update tabel set xxx=' + (xxx + 1) );
Så udregens indholdet i parantesen separat, før det lægges til strengen.
Disclaimer: - Selvfølgelig under forudsætning at xxx faktisk ER et tal : )
Men hvorfor først læse tal fra databasen og herefter putte det ind igen, nu kender jeg ikke SQLite, men jeg kender Sql og du burde kunne gøre som jeg foreslog, uden først at hente tallet ud:
database.executeSQL('update tabel set xxx=xxx+1');
Jeg er ikke helt klar over hvad du vil med dit loop: for(i=0; i<results.length; i++){ var xxx=results[i].xxx; }
Det vil jo ende ud med at du har den sidste værdi som findes, men kun inde i din for løkke, da variabel dannes her.
Hvorfor droppe din første tilgang til tabellen og bare nøjes med dette script:
database.executeSQL('update tabel set xxx=(SELECT MAX(xxx) FROM tabel)+1');
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.