vendredi 1 mai 2015

Sqlite inserting issue in iOS

I need to store user doubleTap count in db. Its working fine. If i am doing very fast double tapping to insert, issues will appear (database is locked, no such table: and out of memory). How to handle that issue?

Thanks in Advance

I tried this, FYI:

 dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void)
{

@try {
        if([self openAppDatabase] == YES) //If DB open success...
        {
            sqlite3_stmt *statement = nil;
            NSString *queryString = [NSString stringWithFormat:@"INSERT INTO %@ (%@,%@) values (?,?)",Tables_Count,lkt_TO,ttt_TIME];
            BOOL prepareStatementResult = sqlite3_prepare_v2(databaseObj, [queryString UTF8String], -1, &statement, NULL);
            if(prepareStatementResult == SQLITE_OK) {
                sqlite3_bind_text(statement, 1, [contactNo  UTF8String], -1, SQLITE_TRANSIENT);
                sqlite3_bind_text(statement, 2, [sentDate UTF8String], -1, SQLITE_TRANSIENT);

                if (sqlite3_step(statement) != SQLITE_DONE) {
                    DLog(@"Can't insert ---- Error");
                }
            }
            else {
                // In the database cannot be opened then show the error message on the debugger.
                DLog(@"%s", sqlite3_errmsg(databaseObj));
            }
            // Release the compiled statement from memory.
            sqlite3_finalize(statement);
        }
        [self closeAppDatabase]; //If DB not opened will close it here...
    }
    @catch (NSException *exception) {
        DLog(@"@Exception --- %@",exception.reason);
    }


 }

Aucun commentaire:

Enregistrer un commentaire