我们正在尝试使用 PhoneGap/Cordova 创建一个移动应用程序。我们需要使用预填充的 SQLite 数据库来发布这个应用程序。我们可以使用以下代码复制数据库。但是,当我们尝试从应用程序中复制的数据库中访问表时,我们会收到“没有这样的表”错误。任何人都可以帮助我们确定原因吗?
我们使用以下代码将数据库复制到 data/data/package_name/databases 文件夹。
try
{
File dbFile = getDatabasePath("Bee_dict.db");
if(!dbFile.exists()){
this.copy("Bee_dict.db",dbFile.getAbsolutePath());
}
}
catch (Exception e)
{
e.printStackTrace();
}
//And our copy function:
void copy(String file, String folder) throws IOException
{
File CheckDirectory;
CheckDirectory = new File(folder);
String parentPath = CheckDirectory.getParent();
File filedir = new File(parentPath);
if (!filedir.exists()) {
if (!filedir.mkdirs()) {
return;
}
}
InputStream in = this.getApplicationContext().getAssets().open(file);
File newfile = new File(folder);
OutputStream out = new FileOutputStream(newfile);
byte[] buf = new byte[1024];
int len; while ((len = in.read(buf)) > 0) out.write(buf, 0, len);
in.close(); out.close();
}
index.html 下面的代码用于打开和访问数据库
function onDeviceReady()
{
db = window.openDatabase("Bee_dict", "1.0", "Bee_dict", 20000);
tx.executeSql('SELECT * FROM data WHERE word_id = ?', [1], querySuccess_definition, errorCB);
}
科尔多瓦版本 - 2.9
谢谢。