2012-03-25 72 views
4

我的应用程序使用SQLite数据库的信息。我有一个函数,检查文件夹和数据库是否已经存在,如果它们不在互联网上(目前我正在使用Dropbox存储数据库文件)并下载数据库并将其存储在sd中卡,然后我会打开数据库。数据库是可写的,因为它可以让用户对对象进行评级。我有两个问题。Android | SQLLite:预先创建的数据库更新不使用SQLiteOpenHelper

1.)我很想提供数据库更新,然后让我的应用程序更新数据库,如果版本号更高并替换现有的数据库。我已经做了一些研究,根据我发现可以存储版本号为xml或json的文件,并且只解析信息,如果版本号更高,则下载新数据库。

有人可以提供如何完成这个例子,以及是否更好地使用XML或JSON来完成这项任务?

2.)有没有一种方法可以在下载和访问新的数据库时在新版本的数据库中保存评级?

谢谢

+1

[SQLiteDatabase.html#setVersion(INT)](HTTP:// developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#setVersion%28int%29)是SQLiteOpenHelper用来设置版本的。你也可以使用它。它是'PRAGMA user_version',如果你想从sqlite直接做到这一点。 – zapl 2012-03-25 17:41:21

回答

1

两天前我写了类似的东西。

  • 通过读取字段名称和字段类型将数据库结构打包为webservice方法中的数组。数组的结构是任意的。
  • 调用Web服务方法,并且如果您使用json_encode()方法在PHP中将其作为json发送,则必须接收表示JSONArray对象的字符串。
  • 读取结构并使用for循环创建DB查询字符串。
  • 执行查询,所以你必须有数据库。
  • 你也可以用数组发送大量的信息。
  • 介绍每个部分都很难,所以每个部分都google了一下。
  • 不要忘记转换字段类型相匹配的SQLite类型,如VARCHAR => TEXT,SMALLINT => INTEGER,...
相关问题