перед вставкой в ​​базу данных sqlite для iphone проверьте наличие данных - PullRequest
2 голосов
/ 04 января 2012

Я хочу сделать вставку данных в sqlite. Пока я вставлял им получающиеся дубликаты в мой код. перед вставкой в ​​базу данных ...

- (IBAction)AddtoFavourites:(id)sender {
    sqlite3 *database;
    dbName=@"dataTable.sqlite";
    NSArray *documentpath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentdir=[documentpath objectAtIndex:0];
    dbPath=[documentdir stringByAppendingPathComponent:dbName];
    if(sqlite3_open([dbPath UTF8String], &database)==SQLITE_OK){
//I want to check data it exists already into database....
       NSString *sqlStatement=[NSString stringWithFormat:@"insert into Persons(PersonName,CompanyName,ImgUrl)values(\"%@\",\"%@\",\"%@\")",model.personName,model.companyName,model.imgurl];
            const char *insertSQL=[sqlStatement UTF8String];
        char *errMsg;
        sqlite3_exec(database, insertSQL, NULL,NULL,&errMsg);
        NSLog(@"Add to Favourites");        
    }
}

1 Ответ

3 голосов
/ 04 января 2012

Сначала используйте запрос выбора для любого из столбцов как:

    const char *sqlStatement = "SELECT PersonName FROM Persons";

Я думаю, вы бы назначили sqlStatement в compiledStatement

            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
            // Read the data from the result row
            NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];


            [dataArray addObject:aName];
            NSLog(@"%@",aName);
 }

Поставьте галочку на этом

...