我正在开发
Android
我有一个应用程序
SQLite
转储文件
资产
我正在尝试使用该转储在用户的手机中创建一个数据库。
问题是,这是一个包含sql命令的长转储文件,其中包含如下换行符:
CREATE TABLE [tblType] (
[IdType] INTEGER NOT NULL ON CONFLICT ROLLBACK PRIMARY KEY ON CONFLICT ROLLBACK AUTOINCREMENT,
[Type] NVARCHAR);
所以当我尝试使用
SQLiteOpenHelper
:
SQLiteOpenHelper openHelper0 = new DbHelper(this);
Cursor cu = null;
try {
cu = openHelper0.getReadableDatabase().rawQuery("select IdWord,Word from tblWord", null);
} catch (Exception e) {
e.printStackTrace();
}
我在每一行都会出现语法错误,包括换行符:
android.database.sqlite。SQLiteException:接近“(”:语法错误(代码
1) :,编译时:CREATE TABLE[tblType](
如果我去掉第一个换行符,我会得到:
android.database.sqlite。SQLiteException:接近“,”:语法错误(代码
1) :,编译时:CREATE TABLE[tblType]([IdType]INTEGER NOT
冲突回滚主键为空
自动递增,
正如我所说,这是一个大型转储,我无法手动删除所有换行符;所以问题是,有没有类似配置或额外代码的方法
安卓
忽略换行符?
这是来自
DBHelper
:
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
try {
InputStream is = activity.getAssets().open("am.sql");
Scanner scanner = new Scanner(is).useDelimiter("\n");
while (scanner.hasNext()) {
sqLiteDatabase.execSQL(scanner.next());
}
is.close();
} catch (IOException ex){
}
}