CSV formatında SD kart üzerinde bir dosyaya Bir SQLite veritabanı dökümünü almak için bu rutin kullanın:
private Boolean backupDatabaseCSV(String outFileName) {
MyLog.d(TAG, "backupDatabaseCSV");
Boolean returnCode = false;
int i = 0;
String csvHeader = "";
String csvValues = "";
for (i = 0; i < GC.CURCOND_COLUMN_NAMES.length; i++) {
if (csvHeader.length() > 0) {
csvHeader += ",";
}
csvHeader += "\"" + GC.CURCOND_COLUMN_NAMES[i] + "\"";
}
csvHeader += "\n";
MyLog.d(TAG, "header=" + csvHeader);
dbAdapter.open();
try {
File outFile = new File(outFileName);
FileWriter fileWriter = new FileWriter(outFile);
BufferedWriter out = new BufferedWriter(fileWriter);
Cursor cursor = dbAdapter.getAllRows();
if (cursor != null) {
out.write(csvHeader);
while (cursor.moveToNext()) {
csvValues = Long.toString(cursor.getLong(0)) + ",";
csvValues += Double.toString(cursor.getDouble(1))
+ ",";
csvValues += Double.toString(cursor.getDouble(2))
+ ",";
csvValues += "\"" + cursor.getString(3) + "\",";
csvValues += Double.toString(cursor.getDouble(4))
+ ",";
csvValues += Double.toString(cursor.getDouble(5))
+ ",";
csvValues += "\"" + cursor.getString(6) + "\",";
csvValues += Double.toString(cursor.getDouble(7))
+ ",";
csvValues += Double.toString(cursor.getDouble(8))
+ ",";
csvValues += Double.toString(cursor.getDouble(9))
+ "\n";
out.write(csvValues);
}
cursor.close();
}
out.close();
returnCode = true;
} catch (IOException e) {
returnCode = false;
MyLog.d(TAG, "IOException: " + e.getMessage());
}
dbAdapter.close();
return returnCode;
}
GC diğer şeylerin yanı sıra Tablo sütun adlarını içeren benim genel sabitleri sınıftır. Sütun adları, başlık satırını CSV dosyasında yapmak için kullanılır. GetAllRows, veritabanı bağdaştırıcısındadır ve tablodaki tüm satırları döndürür. Zaman geri gönderilen tüm satırları döker. Uzun değerler virgülle ayrılır ve metin değerleri bir virgülle ayrıldığı gibi ayrılır. MyLog.d test modunda bir Log.d yapar ve üretim modunda hiçbir şey yapmaz. dbAdapter genel değişken olarak işlev dışında tanımlanır: dbAdapter aktivitesinde çok fonksiyonları kullanılır
dbAdapter = new DatabaseAdapter(getApplicationContext());
:
DatabaseAdapter dbAdapter = null;
Bu şekilde onCreate başlatılır. Veritabanı bağdaştırıcınızı global olarak tanımlarsanız, her dbAdapter.open() öğesini dbAdapter.close() ile her kullandığınızda eşleştirdiğinizden emin olun. Ayrıca, açtığınız her imleci kapatmayı da unutmayın.
Not: csvValues, her SQLite satırında döndürülen sütunların birleşimidir. SQLite imlecinde döndürülen her satır için, csvValues CSV tablosunda bir satır olarak yazılır.