10

データベースのコンテンツにアクセスする方法に関する質問への回答を読みましたが、自分のマシンでは動作しないようです。シェルログは次のとおりです。

C:\android-sdk-windows\tools>adb -s emulator-5554 shell
# sqlite3 /data/data/com.android.demo.notepad2/databases/notes
sqlite3 /data/data/com.android.demo.notepad2/databases/notes
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
.tables
sqlite> ^C
C:\android-sdk-windows\tools>

SQLite は、Eclipse ファイル ブラウザーがコマンドの存在を通知しているにもかかわらず、単にコマンドをエコー バックします。sqlite3 ツールを使用して「.tables」を使用すると、コマンドが受け入れられます。

エミュレーターによって SQLite 構文が異なるのですか?何か不足していますか?

(たくさんの質問をして申し訳ありません。Android に関する一貫したドキュメントはあまりないようです!)

ありがとう!

4

4 に答える 4

13

Android 2.0.1 では問題なく動作することがわかります。

$ adb shell
# cd /data/data/apt.tutorial   
# ls
lib
databases
shared_prefs
# cd databases
# ls
lunchlist.db
# sqlite3 lunchlist.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
android_metadata  restaurants     
sqlite> .exit
# exit

DDMS を使用していつでもデータベース ファイルをダウンロードするかadb pull、デスクトップ SQLite クライアントを使用して調べることができます。たとえば、私は Firefox 用の SQLite Manager プラグインを使用しています。

また、SQLite には既定のファイル拡張子がないことに注意してください。そのため、データベースがnotesbut notes.dbor notes.sqliteor something でない場合は、拡張子を指定する必要があります。

また、私はこれを Windows で試したことはありません。Windows のコマンド プロンプトと、Android デバイスで利用できる限定的なシェルに問題がある可能性があります。

于 2009-12-26T20:10:09.203 に答える
3

コマンドラインから sqlite3 ステートメントを発行する場合は、次のようなものを使用します

$ adb -e shell sqlite3 -batch /data/data/com.example.dbsample/databases/db '.tables'
android_metadata

$ adb -e shell sqlite3 -batch /data/data/com.example.dbsample/databases/db 'select * from android_metadata;'
en_US

明らかな利点は、シェルの履歴に依存できることと、これをスクリプトで使用できることです。

于 2010-01-04T23:59:11.887 に答える
1

私は同じ問題を抱えていて、ドキュメントに反して、データベースファイル名に「.db」拡張子を付けるべきではないことを発見しました。

注:私はwin7および2.1エミュレーターを使用しています。

于 2010-11-09T03:55:00.453 に答える
0

私は同じ問題を抱えており、他の人の時間を節約するためにここに投稿してほぼ1時間費やしました。拡張子とともに正しいファイル名を指定したかどうかを確認してください。データベースフォルダーmyDB.dbとmyDB.dbの下に2つのファイルがあります-journal で、
「sqlite3 /data/data/com.my.package/databases/myDB」
を実行し、
.tables
に何も表示されなかった場合、sqlite3 は myDB という名前の新しいデータベースを作成しましたが、myDB.db を開きませんでした

于 2016-05-24T13:46:31.710 に答える