2

在我的 android phonegap 应用程序中,我编写了调用本机代码的插件。在本机代码中,我正在创建 sqlite 数据库、创建表和插入数据。这里我试图打开同一个数据库并使用 phonegap 存储从 javascript 文件中获取数据阿皮。用于打开数据库和创建表的原生 android 代码

enter code here
private void openDatabase(String dbname, String password)
{
File dbfile = this.cordova.getActivity().getDatabasePath("TheTeamScore"+ ".db");
myDB = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
}
private void createTableAndInsert()
{
try {
this.openDatabase(dbname, null);
myDB.execSQL("CREATE TABLE IF NOT EXISTS Contacts(id INTEGER NOT NULL,name TEXT NOT NULL, selectedEmail TEXT, selectedPhone TEXT)");
String sql ="INSERT INTO Contacts (id,name,selectedEmail,selectedPhone) VALUES   (1,'Saranga','Saranga@gmail.com', '7620765783')";
    myDB.execSQL(sql);
}
catch(Exception e)
{
Log.e("Error", "Error", e);
}
}

Javascript 文件包含打开同一数据库(databasename="TheTeamScore")并从创建的表中选择数据的代码

enter code here
function open_DB() {
return window.openDatabase("TheTeamScore", "1.0", "TheTeamScore DB", 200000);
}
function query_DB(tx) {
if (dbquery == "select"){
tx.executeSql('SELECT * FROM Contacts', [], select_EmailSuccess, error_CBForSelect);
}
}        

但上面的代码无法从联系人表中获取数据并显示错误没有找到联系人表。如何打开同一个数据库并使用 phonegap 使用表

4

1 回答 1

0

两者都使用不同的数据库,在这种情况下,我要求您使用以下插件...

github链接

SQLite 是一个单用户数据库。如果你走“复制数据库”的路线,那么你就有丢失数据的风险。如果桌面用户添加数据和iOS用户添加数据,复制文件时会丢失某人的数据。

您可以实现自己的“同步”算法来识别数据库之间的更改并使它们保持同步。这可能会很痛苦,但这是一种常见的解决方案,也是我推荐的。我已经为桌面/iOS应用程序这样做了。

您可以选择使用数据库服务器,但这需要网络访问才能连接到它。从这里

于 2015-05-11T20:58:18.993 回答