7

明示的なAutoCommittrueまたはfalseを使用していませんが、SQLiteエラーに直面しています。誰でもこのエラーに関する入力を提供できますか。このエラーが発生する状況はどのようなものですか。

前もって感謝します。よろしく、マナシセーブ

4

1 に答える 1

5

テーブルエントリをループするループ内にいるときに、同様の問題に繰り返し直面しました(私の場合はロールバックが不可能でした)。カーソルがエントリを処理している限り、SQL ステートメントは「進行中」です。これがコミットも禁止するかどうかは正確にはわかりませんが、そうなる可能性があります。

テーブル エントリを処理し、同じテーブルまたは別のテーブルにエントリを挿入しようとする場合、メモリ内のデータを収集し、ループの後で挿入または更新を実行することをお勧めします。

追加情報: 「Autocommit」は通常、SQLite ではデフォルトで「True」になります (もちろん、使用するアクセス レイヤーにも依存する可能性があります。私は Python と apsw を使用しているため、Java でこれについて詳しく説明することはできません)。これは、すべての挿入がただちに自動コミットされることを意味します。

==>これは別の解決策かもしれません。データをメモリに格納する代わりに、トランザクションを明示的に開いて、ループの後にコミットすることもできます。この方法では、問題も解決するはずです。

于 2009-06-26T14:31:53.227 に答える