Я новичок в TideSDK и пытаюсь заставить работать локальную базу данных.
Прежде всего, правильно ли это использовать? Я ожидаю, что пользователь загрузит игру, вставит что-то (локальную базу данных) без отправки на сервер, выйдет из игры. Затем вернитесь к нему позже (даже после выключения его компьютера или очистки его интернета), загрузите игру, и все содержимое локальной базы данных все еще будет там, и тогда он может отправить его на сервер. (Должен ли я вместо этого использовать локальный файл?)
Ошибка, которую я получаю, связана с:
db.execute("INSERT INTO Games(id, player, timeText) VALUES(1, 1, 0)"); // Putting a zero time in
Он говорит, что это неправильный оператор sql или база данных не существует.
В идеале я бы тоже хотел сделать sqlite с готовыми операторами, но хотелось начать проще.
Это мод примера HelloWorld:
https://github.com/TideSDK/TideSDK-HelloWorld
Мой модифицированный код:
app.js
function DoSqlCall() {
var lastTime;
//Open the database first
var db = Ti.Database.openFile(Ti.Filesystem.getFile(
Ti.Filesystem.getApplicationDataDirectory(), 'customdatabase.db'));
//Create a table and insert values into it
db.execute("CREATE TABLE IF NOT EXISTS Games(id INTEGER, player INTEGER, timeText TEXT)");
alert("Hello 1");
var rows = db.execute("SELECT * FROM Games WHERE 'id' = 1 AND 'player' = 1");
if(rows.isValidRow()) {
lastTime = rows.fieldByName('timeText');
alert("lastTime: " + lastTime.toString());
//rows.next();
} else {
db.execute("INSERT INTO Games(id, player, timeText) VALUES(1, 1, 0)"); // Putting a zero time in
alert("Put in zero time");
lastTime = 0;
}
//Release memory once you are done with the resultset and the database
rows.close();
db.close();
};
// create and set menu
var menu = Ti.UI.createMenu(),
fileItem = Ti.UI.createMenuItem('File'),
exitItem = fileItem.addItem('Exit', function() {
if (confirm('Are you sure you want to quit?')) {
Ti.App.exit();
}
});
menu.appendItem(fileItem);
Ti.UI.setMenu(menu);
index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<style type="text/css">
body {background: #fff;}
</style>
</head>
<body>
<h1>Hello World</h1>
<button id="m_Send" type="button" onclick="DoSqlCall()">Send</button>
<script type="text/javascript" src="app.js"></script>
</body>
</html>