dbHandling.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Copyright (c) 2011 Nokia Corporation.
  3. */
  4. var _db = openDatabaseSync("SudokumasterDb", "0.1", "Sudokumaster database", 1000000);
  5. _createSettingsTable();
  6. function getRankingsModel() {
  7. var result;
  8. _db.transaction(function(tx) {
  9. result = tx.executeSql('SELECT * FROM rankings ORDER BY placement');
  10. });
  11. var model = Qt.createQmlObject('import Qt 4.7; ListModel {}', main);
  12. for (var i = 0; i < result.rows.length; i++) {
  13. model.append(result.rows.item(i));
  14. }
  15. return model;
  16. }
  17. function setRecord(placement, time, name) {
  18. _db.transaction(function(tx) {
  19. var model = getRankingsModel();
  20. for (var i = placement+1; i <= model.count; i++){
  21. var prev = model.get(i-2);
  22. tx.executeSql('UPDATE rankings SET rankTime = ?, name = ? WHERE placement = ?', [prev.rankTime, prev.name, i]);
  23. }
  24. tx.executeSql('UPDATE rankings SET rankTime = ?, name = ? WHERE placement = ?', [time, name, placement]);
  25. });
  26. }
  27. function _createSettingsTable() {
  28. _db.transaction(function(tx) {
  29. // Uncomment/comment this line if you need to reset/keep your rankings.
  30. // tx.executeSql('DROP TABLE rankings');
  31. var createTableSql = 'CREATE TABLE IF NOT EXISTS rankings(';
  32. createTableSql += 'placement NUMERIC PRIMARY KEY,';
  33. createTableSql += 'rankTime TEXT,';
  34. createTableSql += 'name TEXT)';
  35. tx.executeSql(createTableSql);
  36. var check = tx.executeSql('SELECT * FROM rankings');
  37. if (!check.rows.length) {
  38. for (var i = 1; i <= 10; i++) {
  39. tx.executeSql('INSERT INTO rankings VALUES (?, 3600, "Test")', [i]);
  40. }
  41. }
  42. });
  43. }