| 

.NET C# Java Javascript Exception

3
so jetzt ist doch noch ein problem aufgetaucht. das DB einlesen und Update dazu schreiben passt bestens, nur wenn ich jetzt eine Datensatz änderung habe wird diese nicht angenommen, bzw. der alte Datensatz wird nicht überschieben.
was muss ich ändern um diesen efekt zu bekommen, das INSERT ...... UPDATE restaurants SET ?

-(BOOL)updateDB:(int)index
{
const char *strQuery;

NSString* db_path = [DOCS_FOLDER stringByAppendingPathComponent:DB_NAME];

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

strQuery = "INSERT INTO restaurants(restaurantId, name, address, suburb, latitude, longitude, phone_number, website, description, customId, postcode, email, prempage, camlogo) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

//NSLog(@"%@",strQuery);

sqlite3_prepare_v2(database, strQuery, -1, &statement, NULL);
sqlite3_bind_text(statement, 1, [self.restaurantId UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 2, [self.m_title UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 3, [self.subtitle UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 4, [self.suburb UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_double(statement, 5, self.d_latitude);
sqlite3_bind_double(statement, 6, self.d_longitude);
sqlite3_bind_text(statement, 7, [self.phone UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 8, [self.website UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 9, [self.description UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 10, [self.customId UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 11, [self.postcode UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 12, [self.email UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 13, [self.prempage UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 14, [self.camlogo UTF8String], -1, SQLITE_TRANSIENT);
// sqlite3_bind_text(statement, 1, [self.restaurantid UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(statement);
sqlite3_finalize(statement);
sqlite3_close(database);
}
return NO;
}
News:
16.01.2012
snuffy 231 1 5
5 Antworten
0
guten Morgen,
wo werden den deine Strings gequotet? Bzw. werden sie überhaupt gequotet? Wenn ich das richtig verstehe, möchtest du folgendes an die DB absetzen, nachdem die SQL-Query vorbereitet ist:

INSERT INTO restaurants(restaurantId, name, address, suburb, latitude, 
longitude, phone_number, website, description, customId, postcode, email,
prempage, camlogo)
VALUES(Irgendwas, IrgendwasId, Irgendwas, Irgendwas, Irgendwas, Irgendwas,
Irgendwas, Irgendwas, Irgendwas, Irgendwas, IrgendwasId,
Irgendwas, Irgendwas, Irgendwas)


Sollte das aber nicht so aussehen?
INSERT INTO restaurants(restaurantId, name, address, suburb, latitude, 
longitude, phone_number, website, description, customId, postcode, email,
prempage, camlogo)
VALUES(IrgendwasId, 'Irgendwas', 'Irgendwas', 'Irgendwas', 'Irgendwas',
'Irgendwas', 'Irgendwas', 'Irgendwas', 'Irgendwas', IrgendwasId,
'Irgendwas', 'Irgendwas', 'Irgendwas', 'Irgendwas')



Gruß Jens
16.01.2012
XJenso 322 7
0
Hallo, das einlegen und hinzufügen passt ja alles und funkt bestens!
Mein Problem ist das Updaten bestimmter Datensätze ,
Ich muss den betreffenden Datensatz löschen und dann neu beschreiben
Denk ich mal , nur wie mache ich das in oder mit Xcode ?
Danke
16.01.2012
snuffy 231 1 5
0
mach aus dem INSERT INTO einfach ein REPLACE INTO. Damit wird entweder ein neuer Datensatz geschrieben, oder der letzte Datensatz wird ersetzt mit dem neuen.

Siehe hier
http://www.sqlite.org/lang_insert.html
16.01.2012
XJenso 322 7
0
kann ich auch den entsprechenden datenbank eintrage im update vorgang zuvor mit del. löschen. wie könnte ich das lösen ?
16.01.2012
snuffy 231 1 5
0
was mach ich den da falsch ? irgendwie löscht er keinen club ?

(BOOL)updateDB:(int)index
{
const char *strQuery;

NSString* db_path = [DOCS_FOLDER stringByAppendingPathComponent:DB_NAME];

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

//// versuch 1

strQuery = "DELETE FROM restaurants WHERE restaurantId = ?";
sqlite3_prepare_v2(database, strQuery, -1, &statement, NULL);
sqlite3_bind_text(statement, 1, [self.restaurantId UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(statement);
sqlite3_finalize(statement);
*statement = nil;

if([self.deleted UTF8String] != "1") {

/////

strQuery = "INSERT OR REPLACE INTO restaurants (restaurantId, name, address, suburb, latitude, longitude, phone_number, website, description, customId, postcode, email, prempage, camlogo, deleted) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";


sqlite3_prepare_v2(database, strQuery, -1, &statement, NULL);
sqlite3_bind_text(statement, 1, [self.restaurantId UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 2, [self.m_title UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 3, [self.subtitle UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 4, [self.suburb UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_double(statement, 5, self.d_latitude);
sqlite3_bind_double(statement, 6, self.d_longitude);
sqlite3_bind_text(statement, 7, [self.phone UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 8, [self.website UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 9, [self.description UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 10, [self.customId UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 11, [self.postcode UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 12, [self.email UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 13, [self.prempage UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 14, [self.camlogo UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(statement, 15, [self.deleted UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(statement);
sqlite3_finalize(statement);
}
sqlite3_close(database);
}
return NO;


xcode sollte alle clubs aus der db löschen die auf 1 gesetzt sind :(

kann mir wer helfen den fehler zu beheben ? danke
16.01.2012
snuffy 231 1 5

Stelle deine Mobile-Frage jetzt!