問題タブ [sqliteopenhelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - データベースが別のライターによって閉じられている場合の「データベースが開いていません」
私のアプリにはたくさんFragments
あります。ViewPager
アプリケーションの開始時に、そのうちの 3 つがデータベースに接続してデータを取得しようとします。
データベースの処理には、シングルトン パターンを使用しSQLiteOpenHelper
ます。データベースが必要なときは、次のように呼び出しますSQLiteDatabase db=DatabaseHelper.getInstance(this.getContext()).getWritableDatabase();
。
問題:
でデータベースを閉じないと、当然のdb.close()
ことになります。android.database.sqlite.DatabaseObjectNotClosedException
私もです。しかし、これはシングルトン アプローチであるため、フラグメントの 1 つがデータの取得を完了すると、データベースが閉じられ、残りのフラグメントはそれを使用できなくなります。
データベースから何かを読み取るたびに、データベースが開いているかどうかを確認するのは非常に冗長に思えます。他に何ができますか?
android - テーブルから 1 つの列のみをクエリしようとすると、_id が存在しないというエラーが表示されるのはなぜですか?
なぜ昨日このエラーが発生したのかという質問をいくつかのコードで解決しようとしていました:
特に必要のないコードがたくさんあったので、どこが間違っているのかを理解しやすくするために、多くのコードを取り除きました。しかし、本質的にこれは私のスキーマです:
お分かりのように、見た目は問題ありません。私が読むのを忘れていない限り、それは明らかにそこにあります。しかし、その後、エラーの原因がどこにあるのかを突き止めました。または、少なくともこれが理由であると確信しています。カーソルを取得するこのコード:
Androidによると、これがエラーです。これに変更すると:
すべてが桃です。前者だとクラッシュします。これがなぜなのかについての理由は何でも。rawQuery() でそれができると思いました。where句を含めていない限り、そうではありません。どんな助けでも大歓迎です。
android - Android: SQLite データベースとテーブルを作成するのに最適な場所は?
Android アプリケーションで 5 ~ 6 個のテーブルを作成する必要があります。SQLite データベースと 5 ~ 6 個のテーブルを作成するのに最適な場所は? 最初のアクティビティの起動時にこれらすべてのロジックを (SQLite オープン ヘルパー メソッドを使用して) 記述できますが、そうすると、最初のアクティビティが起動するたびに呼び出されます。つまり、データベースとテーブルのこれらの作成ロジックは、アプリケーションが起動するたびに実行されます.これを行うためのベストプラクティスを誰かに教えてもらえますか.
java - ORMLiteforAndroidを使用したメモリデータベースへの保存
私はアンドロイド用のアプリを開発しています。データベースクエリを実行して保存するWebサービスがあります。アプリの最初に、REST呼び出しを介してWebサービスから特定のデータをロードし、ローカルデータベース(できればORM)に保存します。ORMLiteを見つけて、その使用方法が気に入っていますが、アプリを終了したときにデータが消去されるように、データベースをメモリに保存する方法を考えていました。
使うとき
ドキュメントに記載されているように、runtimeExceptionをスローします。これを達成する方法またはそれを実行する別の方法に関するアドバイスをいただければ幸いです。
android - SQLiteOpenHelper getWritableDatabse() が例外なしで失敗する
私は非常に奇妙な問題を抱えています。複数のデバイスで時々表示されるだけです。好きなときに再現できないようですが、何度も再現したので、どこで入手したかはわかっていると思います。
だから私はLoader
シングルトンを介してsqliteに接続するを持っていますSQLiteOpenHelper
:
私SQLIteOpenHelper
は次のように見えます:
ほとんどの場合、それは本当にうまく機能します。しかし、ときどき次のようなログが表示されます。
この行Log.i(TAG, "Get details offline / db: "+db);
は決して呼び出されません! 例外なし、沈黙。さらに、 のスレッドはLoader
もう実行されていません。
したがって、次の行を超えるものはありません。
実行されます。
この行で何が問題になる可能性がありますか?
android - LGの携帯電話はSqLiteデータベースにアクセスできません
SQLiteデータベースがプリロードされたAndroidプラットフォーム用のアプリケーションを開発しました。SQLiteOpenHelperを使用して、アプリケーションの最初の実行で、アプリケーションデータディレクトリ(/ data / data / br.com.lwu / database / appdatabase.sqlite)の「アセット」からデータベースをコピーします。これは、ほとんどのデバイスで機能します。しかし、以下のLG携帯電話で問題が発生しています。
- LG Optimus One
- LG-P500
- LG-P500h
どうやら、データベースは正しくコピーされています。ただし、アプリケーションはデータベース(このようなテーブル)にアクセスできません。私たちは助けが必要です!
android - データベースが最初に作成されたときにのみsqliteデータベースにレコードを挿入する
データベースが作成されたときのみ(つまり、アプリがデバイスに初めてインストールされたときのみ)、sqliteデータベースにレコードを挿入したいと思います。私は助けを求めてグーグルで検索し、の
onCreate()
メソッドにデータを挿入することを提案する人もいましたSQLiteOpenHelper
が、そのメソッドを使用してレコードを挿入できませんでした。
これは私のコードです
android - AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?
http://www.sqlite.org/threadsafe.html
上記のリンクから、SQLiteはシングルスレッド、マルチスレッド、シリアル化の3つの異なるスレッドモードをサポートしていることがわかりました。「AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?」を知りたいだけです。スレッドモードを実用的に変更する方法はありますか?もしそうなら、私が得る利点はどのようにそして何ですか?いくつかのサンプルケースでどれを選択するのですか?
前もって感謝します。
android - Android:データベースINSERTが例外「getWritableDatabaseを再帰的に呼び出しました」をトリガーします
非同期タスクがSQLiteデータベースにデータを挿入しようとするたびに、次の例外が発生します。
java.lang.IllegalStateException:getWritableDatabaseが再帰的に呼び出されました
データは、ダウンロード、変換、そして最後にデータを挿入するための個別の非同期タスクを実行するサービスによって生成されます。渡したコンテキストオブジェクトが正しいかどうかわかりません。ソースコードに追加したコメントに注意してください。以下では、関連するクラスと関数を追加しました。さらに詳しい情報が必要な場合はコメントを残してください。
..。
..。
..。
..。
アプリケーションをデバッグモードで実行すると、メソッドのブロックのフレームワーククラスThreadPoolExecutor
になります。finally
runWorker()
編集:
これが完全な例外スタックトレースです。
CustomSQLiteOpenHelper.insertTestData()
を呼び出すメソッドについては触れませんでしたgetWritableDatabase()
。insertTestData()
のメソッドを呼び出しますCustomSQLiteOpenHelper.onCreate()
。クラッシュは、アプリケーションがまだデータベースを作成していないときはいつでも発生します。要約すると、hawaii.five-0は完全に正しかったです!
java - SQLiteOpenHelper の説明
(初心者/Android) アプリケーション用のデータベースを実装しています。
それは私には明らかではありません
でデータベースを作成することを意図しています(物理的に.db / .sqlファイルを書き込みます)
または、そのようなファイルを作成するのは私次第であり、このクラスはデータベースのオープン、クローズ、更新を管理するためだけに存在します。
このような場合、DB を自動的に管理するクラスを持つ他の方法はありません。たとえば、ファイルの名前を渡すだけです (自分で行う以外に ^_^ )
ありがとうございました