In meiner App exportieren, ich möchte eine SQLite-Datenbank-Datei in eine CSV-Datei exportieren ..Wie SQLite-Datei in CSV-Datei im iPhone SDK
Könnten Sie mir, wie dies zu tun? Danke.
In meiner App exportieren, ich möchte eine SQLite-Datenbank-Datei in eine CSV-Datei exportieren ..Wie SQLite-Datei in CSV-Datei im iPhone SDK
Könnten Sie mir, wie dies zu tun? Danke.
Zuerst sollten Sie sicherstellen, dass Sie FMDB verwenden, um auf die Datenbank zuzugreifen, da Personen, die die SQLite C-API direkt in Objective-C verwenden, Masochisten sind. Sie können das tun, wie folgt:
FMDatabase *db = [[FMDatabase alloc] initWithPath:@"/path/to/db/file"];
FMResultSet *results = [db executeQuery:@"SELECT * FROM tableName"];
while([results nextRow]) {
NSDictionary *resultRow = [results resultDict];
NSArray *orderedKeys = [[resultRow allKeys] sortedArrayUsingSelector:@selector(compare:)];
//iterate over the dictionary
}
Was in eine CSV-Datei zu schreiben, gut there's code for that too:
#import "CHCSV.h"
CHCSVWriter * csvWriter = [[CHCSVWriter alloc] initWithCSVFile:@"/path/to/csv/file" atomic:NO];
//write stuff
[csvWriter closeFile];
[csvWriter release];
Und sie zu kombinieren, würden Sie tun:
FMDatabase *db = [[FMDatabase alloc] initWithPath:@"/path/to/db/file"];
if (![db open]) {
//couldn't open the database
[db release];
return nil;
}
FMResultSet *results = [db executeQuery:@"SELECT * FROM tableName"];
CHCSVWriter *csvWriter = [[CHCSVWriter alloc] initWithCSVFile:@"/path/to/csv/file" atomic:NO];
while([results nextRow]) {
NSDictionary *resultRow = [results resultDict];
NSArray *orderedKeys = [[resultRow allKeys] sortedArrayUsingSelector:@selector(compare:)];
//iterate over the dictionary
for (NSString *columnName in orderedKeys) {
id value = [resultRow objectForKey:columnName];
[csvWriter writeField:value];
}
[csvWriter writeLine];
}
[csvWriter closeFile];
[csvWriter release];
[db close];
[db release];
That schreibt den Inhalt der Tabelle tableName
in eine CSV-Datei.
@Dave: Oh mein Gott. Ich habe noch nie von FMDB gehört. Ich werde endlich diesen ganzen SQLite Code in meiner App töten! Oh glücklicher Tag !!!!! – Josh
@Josh du bist willkommen! Es gibt eine Tonne Open-Source-Material für Obj-C, also im Zweifelsfall ist es wahrscheinlich bereits für Sie getan (im Rahmen des Zumutbaren);) Ich würde im Auge behalten http://cocoaobjects.com –
I Probleme beim Importieren meiner CSV-Datei in meine SQLite-Datenbank. Meine CSV-Datei enthält europäische Sprachen mit Sonderzeichen wie Umlaute. Was könnte falsch sein? – Meghan
Führen Sie einfach eine SELECT für jede Tabelle aus und drucken Sie den Wert jeder Spalte nach Bedarf in eine Textdatei aus.
Hat die Datenbank eine oder mehrere Tabellen? –
Ja, es hat 2 Tische. – Meghan