| 

.NET C# Java Javascript Exception

1
Hallo ,

Ich habe in meinem App eine SQLite Datenbank mit 200 Kunden, jeder Kunde hat seine Daten in einer zeile , darunter gibt es auch ein Feld mit einem Standart Wert von 99
Diesen wert möchte ich gerne mit einer 0 (null) überschreiben wenn ich einen Button Drücke.

Kann mir jemand einen Tipp geben wie ich das lösen kann ?

vielen Danke
11.03.2012
snuffy 231 1 5
8 Antworten
1
UPDATE (table) SET (spaltenname) = null WHERE id = <id-des kundendatensatzes>

Interessant für dich evtl. auch das Handling der NULL Werte in sqlite.
Ich würde immer empfehlen SQL Standardwerte (NULL) in diesem Fall zu verwenden und keine spezifische Id, die ein "leeres" Feld anzeigt.
12.03.2012
puls200 3,8k 7
0
Hallo plus200,
Erstmal Danke das ich immer Hilfe von Dir bekomme. Ich hoffe ich lieg mit meinem Code jetzt nicht so falsch, ich möchte ja wenn ich bei meinem alertwiew auf OK klicke meinen code unten ausführen und in die spalte xtralogo eine 0 (null) schreiben.
kann ich das so machen ? und wie rufe ich mit einem alertview dann meinen Code auf?
DANKE !
-(BOOL)updateXtraDB
{
char* errorMsg;
NSString *strQuery;

NSString* db_path = [DOCS_FOLDER stringByAppendingPathComponent:DB_NAME];

sqlite3 *database;
if (sqlite3_open([db_path UTF8String], &database) == SQLITE_OK) {

strQuery = [NSString stringWithFormat:@"UPDATE restaurants SET xtralogo = null WHERE id = %@", restaurant.restaurantId ];

if (sqlite3_exec(database, [strQuery UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK){
return NO;
}
return YES;
}
return NO;
}
12.03.2012
snuffy 231 1 5
0
Wenn du ein UIAlertView erzeugst kann man den Parameter delegate angeben. Dieser Funktionszeiger wird aufgerufen, wenn man im Alertview auf einen der Knöpfe drückt. Die Klasse, die den Aufruf erhalten soll (das ist meistens der Viewcontroller, der das UIAlertView erzeugt), muss dann das Protokoll UIAlertViewDelegate implementieren. In diesem Protokoll ist dann die Methode
-(void)alertView:(UIAlertView*) alertView clickedButtonAtIndex:(NSInteger)buttonIndex
interessant. Hier könntest du o.g. Code aufrufen und natürlich vorher auswerten, welcher Knopf gedrückt wurde.
13.03.2012
puls200 3,8k 7
0
Super danke ! Das heißt mein Code oben sollte funktionieren
Nur muss die die Datenbank noch schließen oder ?
13.03.2012
snuffy 231 1 5
Ja, aber das reicht eigentlich wenn die Anwendung geschlossen wird. Den Zugriff auf die DB würde ich ohnehin in einer Klasse kapseln und deinen Code dahin verschieben. Einmal öffnen - Zugriff - Zugriff - Zugriff - und beim Schließen der App zumachen.
puls200 13.03.2012
0
Danke dir für die Hilfe !
13.03.2012
snuffy 231 1 5
0
Ich versteh noch immer nicht wie ich das jetzt mit meinem OK Button im Alertview ausführen kann :(

-(BOOL)updateXtraDB
{
char* errorMsg;
NSString *strQuery;

NSString* db_path = [DOCS_FOLDER stringByAppendingPathComponent:DB_NAME];

sqlite3 *database;
if (sqlite3_open([db_path UTF8String], &database) == SQLITE_OK) {

strQuery = [NSString stringWithFormat:@"UPDATE restaurants SET xtralogo = NULL WHERE id = %@", restaurant.restaurantId ];

if (sqlite3_exec(database, [strQuery UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK){
return NO;
}


sqlite3_close(database);
}
return NO;
}
13.03.2012
snuffy 231 1 5
0
Na, einen UIAlertView erzeugt man eventuell so etwas vereinfacht:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"bla" message:@"blub" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitle:@"OK", nil];
Damit das klappt muss die aufrufenden Klasse UIAlertViewDelegate implementieren.
Du kannst dann den o.g. Code einfach in die Methode clickedButtonAtIndex kopieren. Vom Design her ist das natürlich nicht so toll aber für einen ersten Test sollte es reichen.
Oder habe ich dich jetzt falsch verstanden?
14.03.2012
puls200 3,8k 7
0
Danke fuer die Info , nein ich wusste nur nicht wie
Ich es aufrufen kann :)
[self updateXtraDB]

Ging nur um das.

Danke jetzt passt es bestens , musste den sqlQuery noch umschreiben
Aber jetzt ist Super !
14.03.2012
snuffy 231 1 5

Stelle deine Iphone-Frage jetzt!