无法访问Titanium Mobile数据库

时间:2011-04-05 06:56:29

标签: database titanium appcelerator

下面的代码是一款适用于Android的简单Titanium移动应用程序。我实现了数据库来创建一个表。但我写的代码对我不起作用。我也在资源文件夹中创建了db文件。但是数据库没有变化。我的代码连接数据库是否正确?有人请验证我的代码并回答我的问题。

var win = Ti.UI.createWindow({
    title:'Window',
    backgroundColor:'black',
    borderColor:'grey'
});

var label1 = Ti.UI.createLabel({
    text:'Welcome to new Window',
    color:'white',
    font:{fontSize:20},
    top:10
});

var text1 = Ti.UI.createTextField({
   top:50,width:200
});

var text2 = Ti.UI.createTextField({
   top:100,width:200
});

var db = Titanium.Database.open('testdb');

db.execute('INSERT INTO tips (title, tip ) VALUES(?,?)','santhosh','sathya');

db.close();

win.add(label1);

win.add(text1);

win.add(text2);

win.open({fullscreen:false});

3 个答案:

答案 0 :(得分:0)

您的数据库不能位于您的资源文件夹中,该目录只能从应用程序的角度阅读。

请查看此文档

http://wiki.appcelerator.org/display/td/250+Working+With+Local+Data

https://github.com/appcelerator/KitchenSink/blob/master/Resources/examples/database.js

答案 1 :(得分:0)

如果您希望应用程序使用现有的SQLite数据库文件,则必须先安装它。

Titanium.Database.install( 'path/to/file.s3db', 'testdb' );

但是,请注意,一旦安装它,您在上面指定的文件不是应用程序将使用的数据库。每this guide

  

另一方面,install()将复制   来自的预先存在的数据库文件   Titanium的Resources目录,或者一个   它的后代,到   applicationDataDirectory/../databases/   并返回对已打开的引用   数据库中。

答案 2 :(得分:0)

我在开始时间方面也有同样的问题。我给你一步一步的回答。

让我们尝试解决您的问题:

  1. 在应用程序资源文件夹中创建数据库之后。你首先要清理或投射。
  2. 而不是通过代码(Titanium.database.install('.....sqlite','<database>');
  3. 安装
  4. 而非开放:db=Titanium.database.open(<database>);
  5. 而不是执行:db.execute(' your Syntax ');
  6. 而非关闭:db.close();