【发布时间】:2011-08-19 03:35:16
【问题描述】:
我有一个 appcelerator Titan 项目(您无需熟悉该平台即可帮助我),我正在使用它来创建 iOS 应用程序。我想要一个数据库,其中第一次填充几行的表,然后在第一次之后单独放置。
我知道如果表不存在,您可以创建它。插入数据有类似的吗?
谢谢!
【问题讨论】:
标签: sqlite insert appcelerator
我有一个 appcelerator Titan 项目(您无需熟悉该平台即可帮助我),我正在使用它来创建 iOS 应用程序。我想要一个数据库,其中第一次填充几行的表,然后在第一次之后单独放置。
我知道如果表不存在,您可以创建它。插入数据有类似的吗?
谢谢!
【问题讨论】:
标签: sqlite insert appcelerator
使用一些 Titanium 特定代码扩展 MPelletier 的响应,您可以在项目中执行以下操作:
var my_db = Ti.Database.open('nameofdb');
var my_result_set = my_db.execute('SELECT * FROM MyTable');
var records = my_result_set.rowCount;
记录变量将指示您的表中是否有数据,然后您可以采取相应的行动。
Titanium 有几个不错的 ORM-ish 实用程序:TiStore 和 Joli 是我用过的两个。两者都受到 ActiveRecord 的启发,有助于减少与 DB 相关的代码。如果您想了解更多信息,请访问 Github!
【讨论】:
如果您愿意,可以使用 INSERT OR REPLACE,但您也可以只检查表上的行数:
SELECT COUNT(*) FROM MyTable;
然后决定输入它们。
【讨论】:
您可以通过 SQLLiteManager 或任何您想要的工具创建数据库并在其中插入数据,然后转储它。
将您转储的文件放入您的 Titanium 项目文件夹(在 Resources 文件夹中的某个位置)。
那么这行代码就会把.sqlite文件的内容插入到iOS db中:
var db = Ti.Database.install('../your-db.sqlite', 'your-db-name');
不要忘记 SQL 文件中的 CREATE IF NOT EXISTS 语句。
或者如 MPelletier 所说,使用 REPLACE 而不是 INSERT。
【讨论】: