Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
  • How to save and fetch data from Sqlite database

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 476
    Comment on it

    First include the sqlite file in your project. Then copy that file from bundle to documents directory as below and create Database method.

        NSString *pathForDocumentDirectory =[self databasePath]; //define new path and put old path in new one
        if ([[NSFileManager defaultManager]fileExistsAtPath:pathForDocumentDirectory]) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"myDatabase" ofType:@"sqlite"];
        NSLog(@"bundle path %@",path);
        NSLog(@"doc dir path %@",pathForDocumentDirectory);
        NSError *error;
        [[NSFileManager defaultManager] copyItemAtPath:path toPath:pathForDocumentDirectory error:&error];
        if (error) {
            NSLog(@"error while transferring file=> %@",error.localizedDescription);
        } else {
            NSLog(@"db file saved in documents");


    For Database path we can use below method.

    -(NSString *)databasePath{
        //define the property of databasepath ,path start from zero.
        NSString *pathForDocumentDirectory=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)objectAtIndex:0];
        pathForDocumentDirectory=[pathForDocumentDirectory stringByAppendingPathComponent:@"myDatabase.sqlite"];  //add myDatabase in this, myDatabase is the database which we created
        return pathForDocumentDirectory; //got database path in pathForDocumentDirectory

    By using below code we can save data in database.

    -(BOOL)saveRecordsInDb {
        const char *databasePath = [self.databasePath UTF8String];  //convert db path in char formate
        if (sqlite3_open(databasePath, &database) == SQLITE_OK)  //open database
            NSString *insertData = [NSString stringWithFormat:@"insert into myTable (firstName,lastName) values (\"%@\",\"%@\")",@"jaya",@"arti"]; //myTable is the table name having two columns first name and last name.
            const char *insert_stmt = [insertData UTF8String]; // converting insertData into char
            sqlite3_prepare_v2(database, insert_stmt,-1, &statement, NULL);//prepare statement
            BOOL success;
            if (sqlite3_step(statement) == SQLITE_DONE)//step is used for execution
                success = YES;
            else {
                success = NO;
            sqlite3_reset(statement); //reset to value 0
            return success;
        return NO;

    If we want to fetch records then we can use following code. In below code we are printing fetched data.

    -(NSArray *)getAllDetailsFromDb{
        const char *databasePath = [self.databasePath UTF8String]; //converting databasePath path into char
        NSMutableArray *resultArray = [NSMutableArray new];
        if (sqlite3_open(databasePath, &database) == SQLITE_OK)
            NSString *getDetails = [NSString stringWithFormat:@"select * from myTable];
            const char * get_stmt = [getDetails UTF8String];//convert getDetails into char formate
            if (sqlite3_prepare_v2(database,
                                   get_stmt, -1, &statement, NULL) == SQLITE_OK)//for connection
                while (sqlite3_step(statement) == SQLITE_ROW)
       //it will run values column by column so we have to write column 0 ,column1 and all.
                   NSString *firstDetail = [[NSString alloc] initWithUTF8String:
                                       (const char *) sqlite3_column_text(statement, 0)];
                    NSString *secondDetail = [[NSString alloc] initWithUTF8String:
                                       (const char *) sqlite3_column_text(statement, 1)];
                    NSLog(@"checks are %@ %@ ",firstDetail,secondDetail);
                NSLog(@"Not found");
                return nil;
        return resultArray;


 0 Comment(s)

Sign In

Sign up using

Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: