2009-07-21 10 views
3

私はそれを照会するときにSQLiteデータベースを返すWebサービス(私が制御できない)を使って作業しようとしています。これを行う方法はありますか?Androidからの外部SQLiteデータベースとのやりとり。

+0

データベース全体がファイルとして返されることはほとんどありません。返される形式(SOAP、CSV、JSON、XMLなど)は何ですか? –

+7

それを信じるかどうか、私が言っていることが分からないと言っても、あまり役に立ちません。私はSQLiteデータベースファイルの質問に返されるものを教えてくれました。 –

答えて

5

私は似た何かをやっているプロジェクトに取り組んでいます。データベースの更新を要求し、必要な更新の量に応じて、まったく新しいデータベースまたは一連のSQL文を送信します。私は強く、あなたがダウンロードしているデータベースのサイズが可変で、サイズが数キロバイトを超えている場合には、データベースが利用可能であればsdcardに保存することを強くお勧めします。

私は、ファイルを取得するには、次のやっている(あなたがSOAP応答で、また、進捗のものを無視して対処するためのXMLを持っているかもしれないので味に変更します。)その後

fileStream = new FileOutputStream(new File(I-build-my-filename-stuff-above-here)); 

/* fileData is a byte[8192] */ 
while((i = httpResponse.read(fileData)) > -1) { 
    fileStream.write(fileData, 0, i); 

    position += i; 

    if (item.getUpdateType() == UpdateItem.FULL_FILE) { 
     progress = position/item.getSize(); 
    } else { 
     progress = position/(item.getSize() * 2); 
    } 

    item.setProgress(progress); 
} // end loop through getting http response stream 

fileStream.close(); 
httpResponse.close(); 

私は次のようにしますデータベースにアクセスします。これらのデータベースはiPhoneアプリケーションでも使用されるため、Android固有のテーブルがないため、DBにアクセスするにはSQLiteDatabase.NO_LOCALIZED_COLLATORSフラグが必要です。私のデータベースクラスは、SQLiteOpenHelperクラスを拡張しています。

public Database(Context context, String fileName, String title) { 
    super(context, fileName, null, 1); 
    this.context = context; 
    this.title = title; 
    this.fileName = fileName; 

    if (fileName != null && fileName.contains("/sdcard")) { 
     db = SQLiteDatabase.openDatabase(fileName, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.CREATE_IF_NECESSARY);    
    } else { 
     db = getWritableDatabase(); 
    } 

} 
+0

データベースクラス全体を投稿できますか?ありがとう! –

0

結果のフォーマットにオプションがない場合は、データベースファイルを/ data/data/package_name/databasesにあるアプリケーションのデータベースディレクトリに保存し、各要求のロード後にデータベースファイルを検索し、結果を照会します。

ここにデータベースのページがいくつかあります。

  1. http://developer.android.com/guide/topics/data/data-storage.html
  2. http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
関連する問題