Articles of android sqlite

在事务运行时读取sqlite数据(Android)

我需要从数据库读取一些数据,同时我在一个事务的另一个线程中加载一些数据。 读取其他表的所有线程都将停止,直到其他线程中的事务完成。 我需要能够从数据库中读取信息而不必担心其他线程。 我已经阅读了很多关于sqlite,android的信息…但是没有什么工作,总是我的查询参数被阻止。 我遵循这个建议,因为@KevinGalligan在这个post中说( Android上SQLite的最佳做法是什么? )解决锁和其他问题。 1)我只使用一个SQLiteOpenHelper(单例) 2)我从未关闭数据库 我试过了: 用以下内容开始交易: database.execSQL(“begin immediate transaction”); 要么 database.beginTransactionNonExclusive(); 代替 database.beginTransaction(); 不工作,查询被阻止。 我已经读过WAL(database.enableWriteAheadLogging()),但我需要支持api 9。 同时读取事务的任何其他解决方案是更新某些表吗? 我不在乎我的信息是否被弃用,更重要的是不要阻止我的线程。

Android SQlitemultithreading访问

我正在使用SQLiteOpenHelper在Android上编写和读取SQlite数据库。 当用户点击UI时,我使用AsyncTask从SQLite数据库中读取,但在确切的samo时刻,我正在使用其他AsyncTask更新并在后台写入数据库。 每x次我得到数据库锁定exception。 我怎样才能解决这个问题? 是否可以同时从多个线程以某种方式访问​​SQl​​ite? 我正在使用它:我有一个从SQLiteOpenHelper扩展的Database类。 我实现了onCreate和onUpgrade方法,每次我从数据库读取或写入数据库时​​我都使用SQLiteDatabase: SQLiteDatabase database = null; try { database = new Database(context).getWritableDatabase(); …. writing and reading from database… …. } catch (Exception e) { e.printStackTrace(); } finally { if (database != null) { database.close(); } } 最后,如果我使用它们,我也会关闭SQLiteStatements和Cursors。 我应该使用@Justin答案并在Application中使用单例数据库类吗? 这是我得到的错误: E/SqliteDatabaseCpp(17377): sqlite3_open_v2(“/data/data/com.skulptur/databases/LGM.s3db”, &handle, 6, NULL) failed E/SQLiteDatabase(17377): Failed to open the […]

无法使用rawQuery正确执行删除查询

我想删除一些表info行比较另一个表type ,我的代码如下所示。 我没有收到任何错误或exception仍然无法删除数据。 请建议我 String query = “delete from info where _id in ” + “( select a._id ” + ” from info a, type b,” + ” where a.t_id = b._id and b.type_name = ‘Petrol’ )”; try{ database.rawQuery(query,null); }catch (Exception e){ e.printStackTrace(); }

SQLite数据库与片段结合使用

我正在将我的应用程序从Activity更改为Fragments,它很棒,但是我有一个错误,它不会让我打开我的数据库。 这是错误(来自logcat): 05-17 15:28:38.704 13025-13025/com.MJV.werktijden E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) at com.MJV.werktijden.DBAdapter.open(DBAdapter.java:71) at com.MJV.werktijden.OverviewFragment.onActivityCreated(OverviewFragment.java:38) at android.app.Fragment.performActivityCreated(Fragment.java:1703) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) at android.app.BackStackRecord.run(BackStackRecord.java:682) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 我试图自己解决,但我找不到问题。 只是因为当我将它与Activity一起使用时,这个数据库确实有效。 我用这种方法打开数据库: //—opens the […]

如何在房间持久性库中插入图像?

我正在为我的Android应用程序使用房间持久性库,现在我必须在我的数据库中插入图像。 我成功地为原始数据types定义了@Entity。 并且还通过转换器类,我存储了所有对象,日期,时间。 现在我必须存储图像。 我无法理解我们如何定义列信息和实体以及我们如何插入数据以及从表中读取数据。 插入单行的数据的最大大小是多少? Android SQLite中一个字段中数据的最大和最小大小是多少?

在sqlite数据库中排序日期?

我开发了一个App ..因为我有一个数据库,它有很多表。 其中一个表有日期列。 我的问题是我必须对日期进行排序,并且必须从下表列中选择最早的10月24日至2012年 Column_Date ———— NOV-07-2012 NOV-21-2012 NOV-25-2012 OCT-25-2012 OCT-24-2102 我该怎么做….我已经将日期列存储在字符串中……如果我需要更改日期列的数据types,请告诉我应该使用哪种数据types。 我应该如何对Column进行排序。根据该数据types..

使用Sqlite查询,从存储的毫秒中获取日期

我在我的应用程序中使用sqlite数据库,其中我以毫秒为单位存储日期和时间。 现在使用Sqlite查询我试图从格式“yyyy-MM-dd”获得此日期时间从毫秒到日期但没有得到正确的结果。 我想使用Sqlite查询来做到这一点。 我们将不胜感激。

如何在Android Studio上的Sqlite数据库中查看插入的数据

你能不能帮我解决这个问题。 我正在为我的Sqlite数据库插入值。 如何查看或查看插入的数据。 是否有任何工具或其他技术来显示数据?

引起:android.database.sqlite.SQLiteException:near“”:语法错误(代码1):,同时编译:

11-27 03:32:04.471:E / AndroidRuntime(23137):引起:android.database.sqlite.SQLiteException:接近“order”:语法错误(代码1):,同时编译:create table order(_id integer primary key autoincrement,origin text not null,quantity integer not null); MyDatabase类: public class MyDatabase extends SQLiteOpenHelper { public static final String TABLE_NAME = “order”; public static final String TABLE_ID = “_id”; public static final String TABLE_ORIGIN = “origin”; public static final String TABLE_QUANTITY = “quantity”; private static final String […]

Logcat说“无效列数据1”

新线程。 SQL新手。 获取联系信息的新手。 所以当然我迷路了。 如果我正确地读取这个logcat,它告诉我:列数据1不存在,或者我正在寻找错误的信息。 不幸的是,这是一个“从我的错误中学习”的学习之路,我无法想象这一点。 很感谢任何forms的帮助。 这里的目标是获取联系人的姓名,电话号码和电子邮件(按联系人ID匹配信息)。 日志: 06-22 21:15:44.700: E/AndroidRuntime(1662): FATAL EXCEPTION: Thread-120 06-22 21:15:44.700: E/AndroidRuntime(1662): java.lang.IllegalArgumentException: Invalid column data1 06-22 21:15:44.700: E/AndroidRuntime(1662): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167) 06-22 21:15:44.700: E/AndroidRuntime(1662): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137) 06-22 21:15:44.700: E/AndroidRuntime(1662): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366) 06-22 21:15:44.700: E/AndroidRuntime(1662): at android.content.ContentResolver.query(ContentResolver.java:372) 06-22 21:15:44.700: E/AndroidRuntime(1662): at android.content.ContentResolver.query(ContentResolver.java:315) 06-22 21:15:44.700: E/AndroidRuntime(1662): at sat.tuts4mobile.customlistview.ContactDetails$1.run(ContactDetails.java:53) 06-22 21:15:44.700: E/AndroidRuntime(1662): […]