在 api 14 中获取 android Sqlite 语法错误 运行
Getting android Sqlite syntax error running in api 14
我有数据库适配器序列,它将默认值转储到表中。
它在 API 级别 19 到 21 的设备 运行 上运行良好。当我在 API 14 中尝试时。我收到语法错误。
I/SqliteDatabaseCpp﹕ sqlite returned: error code = 1, msg = near ",": syntax error, db=/data/data/com.myapp/databases/myappdb
这是我的 sql 行
private static final String DATABASE_INSERT_SEARCH =
"INSERT INTO varngle_word (name, count, type) VALUES" +
" ('Kindle', 0, 'item')," +
" ('Google', 0, 'site');";
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_SEARCH);
db.execSQL(DATABASE_INSERT_SEARCH);
}
}
根据this post multi-values syntax was introduced in SQLite version 3.7.11:"Enhance the INSERT syntax to allow multiple rows to be inserted via the VALUES clause. "。
SQLite 版本 3.7.11 仅在 Android 4.1 及更高版本中。
- SQLite 版本 3.7.11 可用 API 级别:19、18、17、16
- SQLite 版本 3.7.4 可用 API 级别:15、14、13、12、11
检查this post for more details about SQLite versions。
或者,您可以遍历项目并逐行插入或使用以下内容:
INSERT INTO varngle_word (name, count, type)
SELECT 'Kindle', 0, 'item'
UNION
SELECT 'Google', 0, 'site';
您不能使用此语法插入多行。它出现在sqlite 3.7.11版本之后,android 4.0设备通常带有sqlite 3.7.4。
请参阅此 link (Insert Error SqLite in Android 4.0.3) 了解一些解决方案
我有数据库适配器序列,它将默认值转储到表中。 它在 API 级别 19 到 21 的设备 运行 上运行良好。当我在 API 14 中尝试时。我收到语法错误。
I/SqliteDatabaseCpp﹕ sqlite returned: error code = 1, msg = near ",": syntax error, db=/data/data/com.myapp/databases/myappdb
这是我的 sql 行
private static final String DATABASE_INSERT_SEARCH =
"INSERT INTO varngle_word (name, count, type) VALUES" +
" ('Kindle', 0, 'item')," +
" ('Google', 0, 'site');";
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_SEARCH);
db.execSQL(DATABASE_INSERT_SEARCH);
}
}
根据this post multi-values syntax was introduced in SQLite version 3.7.11:"Enhance the INSERT syntax to allow multiple rows to be inserted via the VALUES clause. "。
SQLite 版本 3.7.11 仅在 Android 4.1 及更高版本中。
- SQLite 版本 3.7.11 可用 API 级别:19、18、17、16
- SQLite 版本 3.7.4 可用 API 级别:15、14、13、12、11
检查this post for more details about SQLite versions。
或者,您可以遍历项目并逐行插入或使用以下内容:
INSERT INTO varngle_word (name, count, type)
SELECT 'Kindle', 0, 'item'
UNION
SELECT 'Google', 0, 'site';
您不能使用此语法插入多行。它出现在sqlite 3.7.11版本之后,android 4.0设备通常带有sqlite 3.7.4。
请参阅此 link (Insert Error SqLite in Android 4.0.3) 了解一些解决方案