Articles of android sqlite

SQLite使用默认值添加列

我在Android SQLite DB中工作。 我正在将它从版本1升级到版本2. onUpgrade方法按预期调用。 我的代码: sqLiteDatabase.execSQL(“ALTER TABLE ” + Contracts.DateActivities.TABLE_NAME + ” ADD COLUMN ” + Contracts.DateActivities.C_GROUP + ” INTEGER DEFAULT 0;”); 我一直得到同样的错误: Caused by: android.database.sqlite.SQLiteException: near “group”: syntax error (code 1): , while compiling: ALTER TABLE DateActivities ADD group INTEGER DEFAULT 0 我究竟做错了什么? 我试过的其他变化: sqLiteDatabase.execSQL(“ALTER TABLE ” + Contracts.DateActivities.TABLE_NAME + ” ADD COLUMN […]

游标:“fillWindow();”中的无效语句

我收到此错误: Cursor:fillWindow()中的无效语句 这是什么意思? 有关如何克服它的任何建议?

Sqlite游标窗口分配2048 kb失败

public List GetAllPatientDetails() { List DiagnosistblList = new ArrayList(); String selectQuery = “SELECT * FROM ” + TABLE_Diagnosistble + “”; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = null; { cursor = db.rawQuery(selectQuery, null); if(cursor.getCount() > 0) { if (cursor.moveToFirst()) do{ Diagnosis_tble diagCreation_tble = new Diagnosis_tble(); diagCreation_tble.SetDiagnosisID(cursor.getString(0)); diagCreation_tble.SetPName(cursor.getString(1)); diagCreation_tble.SetHospitalNo(cursor.getString(2)); diagCreation_tble.SetPGender(cursor.getString(3)); diagCreation_tble.SetPacemaker(cursor.getString(4)); diagCreation_tble.SetDiagType(cursor.getString(5)); diagCreation_tble.SetP_Age(cursor.getString(6)); diagCreation_tble.SetDeviceID(cursor.getString(7)); diagCreation_tble.SetDiagStrtTime(cursor.getString(8)); diagCreation_tble.SetDiagEndTime(cursor.getString(9)); […]

Android sqlite更新问题

如果我的问题太简单,请告诉我,我的更新声明中有什么问题,请向我道歉。 我有sqlite将我的记录存储在Android应用程序中。 我能够成功插入和选择。 但是,在更新期间,我收到一些错误。 码: private static final String TABLE_WIFI = “wifi”; // table name private static final String KEY_BSSID = “bssid”; private static final String KEY_NAME = “name”; private static final String KEY_LAT = “lat”; private static final String KEY_LNG = “lng”; private static final String KEY_ACCURACY = “accuracy”; public void onCreate(SQLiteDatabase db) { […]

处理橱柜中的列表的最佳方法(android库)

橱柜( https://bitbucket.org/qbusict/cupboard )是一个非常方便的库,但遗憾的是它不支持将列表映射到数据库,并且需要手动处理列表。 但是处理它们的方法是什么?

从sdcard导入SQLite数据库到android – 没有Assets文件夹

我试图从sdcard或任何外部位置导入我的sqlite数据库到我的Android应用程序。 我的应用程序需要数据库导入,这样数据库模式不会更改,但记录会根据导入的数据库而更改。 (例如,我可能在给定时间导入具有10条记录的DatabaseA,而另一次我可能导入具有25条记录的DatabaseA。数据库A始终从同一外部位置导入)。 到目前为止我使用assets文件夹看到的导入方法没有帮助。 我想导入指向外部位置的数据库。

“SQLiteDiskIOException:错误代码10:磁盘I / O错误”在DROP TABLE上的ICS和Samsung Nexus上重新调整

我收到以下错误: android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error at android.database.sqlite.SQLiteStatement.native_execute(Native Method) at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92) at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1926) at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1866) 我只在Samsung Nexus手机上的ICS 4.0.1上出现此错误。 在模拟器,Motorola Xoom 3.2和HTC Desire 2.3.3上,代码工作正常。 我的代码针对SDK的版本8或2.2.x。 execSQL执行如下: db.execSQL(“DROP TABLE IF EXISTS ” + table.getTableName()); 数据库存储在内部,而不是SD卡。 有关如何解决这个问题的任何建议?

如何在GreenDao中实现表inheritance

我一直在尝试创建一个数据库,其中所有表都inheritance了某个元素,以便有可能拥有元数据。 因为我在模型生成器中添加了所有表声明这一行: public Entity addSuperEntity(Schema schema) { Entity superEntity = schema.addEntity(“superEntity”); superEntity.addIdProperty().primaryKey(); // SET RELATIONSHIP 1:m TO META DATA } public Entity addTable(Schema schema) { Entity mEntity = schema.addEntity(“MyEntity”); mEntity.setSuper(“superEntity”); mEntity.addIdProperty().PrimaryKey(); // REST OF FIELDS } 问题是: 在我将这个生成到我的Android项目之后,我怎样才能确保在现实生活中这仍然存在? 我现在需要改变什么吗? 官方文档没有关于inheritance的任何内容。

如何在android中使用ormlite在外键上执行级联删除

我在android中使用ormlite并成功创建了表并使用DAO执行不同的操作。 但是如果从主表中删除主键,我一直在删除外键行。 我有两个名为Parent和child的表。 父母有多个孩子,所以我将孩子与外键联系起来。 码: 父表: @DatabaseField(id = true) private Integer id; @ForeignCollectionField(eager = false) private ForeignCollection childCollection; 子表: @DatabaseField(id = true) private Integer id; @DatabaseField(foreign = true, foreignAutoRefresh = true, canBeNull = false, index = true, columnDefinition = “INTEGER REFERENCES parent(id) ON DELETE CASCADE”) private Parent parent; 现在如果我删除特定id的父行,那么这不会从子表中删除子项。 public void deleteById(Integer parentId) { try […]

无法执行操作,因为插入数据库时​​没有当前事务

在我的Android应用程序中,我必须将数据插入来自不同线程的几个SQLite表中(一个线程用于插入一个表,并且有5个表)。 有很多数据所以我使用beginTransaction() – > setTransactionSuccessful() – > endTransaction(); 在每个线程和所有线程同时启动,但在第二个或有时第三个线程我总是得到这个exception: 我使用单一的SQLite连接(单例),但是这个问题仍然存在。所以我希望能提供一些帮助。谢谢! PS如果我有竞争条件,我应该用什么方式进行multithreading插入?