問題タブ [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.

0 投票する
0 に答える
247 参照

android - データベースが別のライターによって閉じられている場合の「データベースが開いていません」

私のアプリにはたくさんFragmentsあります。ViewPagerアプリケーションの開始時に、そのうちの 3 つがデータベースに接続してデータを取得しようとします。

データベースの処理には、シングルトン パターンを使用しSQLiteOpenHelperます。データベースが必要なときは、次のように呼び出しますSQLiteDatabase db=DatabaseHelper.getInstance(this.getContext()).getWritableDatabase();

問題:

でデータベースを閉じないと、当然のdb.close()ことになります。android.database.sqlite.DatabaseObjectNotClosedException私もです。しかし、これはシングルトン アプローチであるため、フラグメントの 1 つがデータの取得を完了すると、データベースが閉じられ、残りのフラグメントはそれを使用できなくなります。

データベースから何かを読み取るたびに、データベースが開いているかどうかを確認するのは非常に冗長に思えます。他に何ができますか?

0 投票する
4 に答える
435 参照

android - テーブルから 1 つの列のみをクエリしようとすると、_id が存在しないというエラーが表示されるのはなぜですか?

なぜ昨日このエラーが発生したのかという質問をいくつかのコードで解決しようとしていました:

特に必要のないコードがたくさんあったので、どこが間違っているのかを理解しやすくするために、多くのコードを取り除きました。しかし、本質的にこれは私のスキーマです:

お分かりのように、見た目は問題ありません。私が読むのを忘れていない限り、それは明らかにそこにあります。しかし、その後、エラーの原因がどこにあるのかを突き止めました。または、少なくともこれが理由であると確信しています。カーソルを取得するこのコード:

Androidによると、これがエラーです。これに変更すると:

すべてが桃です。前者だとクラッシュします。これがなぜなのかについての理由は何でも。rawQuery() でそれができると思いました。where句を含めていない限り、そうではありません。どんな助けでも大歓迎です。

0 投票する
4 に答える
1057 参照

android - Android: SQLite データベースとテーブルを作成するのに最適な場所は?

Android アプリケーションで 5 ~ 6 個のテーブルを作成する必要があります。SQLite データベースと 5 ~ 6 個のテーブルを作成するのに最適な場所は? 最初のアクティビティの起動時にこれらすべてのロジックを (SQLite オープン ヘルパー メソッドを使用して) 記述できますが、そうすると、最初のアクティビティが起動するたびに呼び出されます。つまり、データベースとテーブルのこれらの作成ロジックは、アプリケーションが起動するたびに実行されます.これを行うためのベストプラクティスを誰かに教えてもらえますか.

0 投票する
1 に答える
920 参照

java - ORMLiteforAndroidを使用したメモリデータベースへの保存

私はアンドロイド用のアプリを開発しています。データベースクエリを実行して保存するWebサービスがあります。アプリの最初に、REST呼び出しを介してWebサービスから特定のデータをロードし、ローカルデータベース(できればORM)に保存します。ORMLiteを見つけて、その使用方法が気に入っていますが、アプリを終了したときにデータが消去されるように、データベースをメモリに保存する方法を考えていました。

使うとき

ドキュメントに記載されているように、runtimeExceptionをスローします。これを達成する方法またはそれを実行する別の方法に関するアドバイスをいただければ幸いです。

0 投票する
0 に答える
2679 参照

android - SQLiteOpenHelper getWritableDatabse() が例外なしで失敗する

私は非常に奇妙な問題を抱えています。複数のデバイスで時々表示されるだけです。好きなときに再現できないようですが、何度も再現したので、どこで入手したかはわかっていると思います。

だから私はLoaderシングルトンを介してsqliteに接続するを持っていますSQLiteOpenHelper:

SQLIteOpenHelperは次のように見えます:

ほとんどの場合、それは本当にうまく機能します。しかし、ときどき次のようなログが表示されます。

この行Log.i(TAG, "Get details offline / db: "+db);は決して呼び出されません! 例外なし、沈黙。さらに、 のスレッドはLoaderもう実行されていません。

したがって、次の行を超えるものはありません。

実行されます。

この行で何が問題になる可能性がありますか?

0 投票する
1 に答える
469 参照

android - LGの携帯電話はSqLiteデータベースにアクセスできません

SQLiteデータベースがプリロードされたAndroidプラットフォーム用のアプリケーションを開発しました。SQLiteOpenHelperを使用して、アプリケーションの最初の実行で、アプリケーションデータディレクトリ(/ data / data / br.com.lwu / database / appdatabase.sqlite)の「アセット」からデータベースをコピーします。これは、ほとんどのデバイスで機能します。しかし、以下のLG携帯電話で問題が発生しています。

  • LG Optimus One
  • LG-P500
  • LG-P500h

どうやら、データベースは正しくコピーされています。ただし、アプリケーションはデータベース(このようなテーブル)にアクセスできません。私たちは助けが必要です!

0 投票する
3 に答える
5053 参照

android - データベースが最初に作成されたときにのみsqliteデータベースにレコードを挿入する

データベースが作成されたときのみ(つまり、アプリがデバイスに初めてインストールされたときのみ)、sqliteデータベースにレコードを挿入したいと思います。私は助けを求めてグーグルで検索し、の onCreate()メソッドにデータを挿入することを提案する人もいましたSQLiteOpenHelperが、そのメソッドを使用してレコードを挿入できませんでした。

これは私のコードです

0 投票する
2 に答える
1963 参照

android - AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?

http://www.sqlite.org/threadsafe.html

上記のリンクから、SQLiteはシングルスレッド、マルチスレッド、シリアル化の3つの異なるスレッドモードをサポートしていることがわかりました。「AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?」を知りたいだけです。スレッドモードを実用的に変更する方法はありますか?もしそうなら、私が得る利点はどのようにそして何ですか?いくつかのサンプルケースでどれを選択するのですか?

前もって感謝します。

0 投票する
1 に答える
1904 参照

android - Android:データベースINSERTが例外「getWritableDatabaseを再帰的に呼び出しました」をトリガーします

非同期タスクがSQLiteデータベースにデータを挿入しようとするたびに、次の例外が発生します。

java.lang.IllegalStateException:getWritableDatabaseが再帰的に呼び出されました

データは、ダウンロード、変換、そして最後にデータを挿入するための個別の非同期タスクを実行するサービスによって生成されます。渡したコンテキストオブジェクトが正しいかどうかわかりません。ソースコードに追加したコメントに注意してください。以下では、関連するクラスと関数を追加しました。さらに詳しい情報が必要な場合はコメントを残してください。

..。

..。

..。

..。

アプリケーションをデバッグモードで実行すると、メソッドのブロックのフレームワーククラスThreadPoolExecutorになります。finallyrunWorker()


編集:
これが完全な例外スタックトレースです。

CustomSQLiteOpenHelper.insertTestData()を呼び出すメソッドについては触れませんでしたgetWritableDatabase()insertTestData()のメソッドを呼び出しますCustomSQLiteOpenHelper.onCreate()。クラッシュは、アプリケーションがまだデータベースを作成していないときはいつでも発生します。要約すると、hawaii.five-0は完全に正しかったです!

0 投票する
2 に答える
185 参照

java - SQLiteOpenHelper の説明

(初心者/Android) アプリケーション用のデータベースを実装しています。

それは私には明らかではありません

でデータベースを作成することを意図しています(物理的に.db / .sqlファイルを書き込みます)

または、そのようなファイルを作成するのは私次第であり、このクラスはデータベースのオープン、クローズ、更新を管理するためだけに存在します。

このような場合、DB を自動的に管理するクラスを持つ他の方法はありません。たとえば、ファイルの名前を渡すだけです (自分で行う以外に ^_^ )

ありがとうございました