Question: how to do CRUDE operation in iphone?-RV

Ads

 
 
 

Share on Google+Share on Google+

Ravi Vora
how to do CRUDE operation in iphone?-RV
1 Answer(s)      5 years and 4 months ago
Posted in : MobileApplications

.h file

#import <sqlite3.h>

@interface RootViewController : UIViewController {

    IBOutlet UIView *page1;
    IBOutlet UIButton *b2;
        IBOutlet UITextField *textid;
    IBOutlet UITextField *textname;

    IBOutlet UILabel *status;
    NSString *databasePath;
    NSMutableArray *temparray;
    //NSMutableDictionary *item;
    //IBOutlet UIButton *btnNextview;

    NSString *databaseName;
    BOOL isInSwipeDeleteMode;

}

@property (assign) BOOL isInSwipeDeleteMode;

-(void)checkAndCreateDatabase;
-(void)getdata;
-(IBAction)savedata;
-(BOOL)UpdateData;
-(IBAction)find:(id)sender;
-(IBAction)keyhide:(id)sender;
-(IBAction)btnTapped:(id)sender;
- (BOOL) validateEmail: (NSString *) candidate;
-(void)delData:(NSString *)path;

@end

.m file

-(void) checkAndCreateDatabase {

    BOOL success;   
    databaseName = @"namedatabase.rdb";
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [documentPaths objectAtIndex:0];
    databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    success = [fileManager fileExistsAtPath:databasePath];

    if(success) return;


    NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];

    [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];

    [fileManager release];
}

-(IBAction)save_DB
{
    [self checkAndCreateDatabase];
    //[self RemoveData];
    sqlite3 *database;
    static sqlite3_stmt * addStmt ;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    databaseName = @"Photos_db.rdb";
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [documentPaths objectAtIndex:0];
    databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

    BOOL success = [fileManager fileExistsAtPath:databasePath];
    if(!success)
    {
        NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Photos_db.rdb"];
        success = [fileManager copyItemAtPath:defaultDBPath toPath:databasePath error:&error];
        if (!success)
            NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    }   

    if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
    {
        const char *sql = "insert into photo_table(photo_name,photo_date) Values(?,?)";
        if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
            NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
        sqlite3_bind_text(addStmt, 1, [text_photoname.text UTF8String], -1, SQLITE_TRANSIENT);
        sqlite3_bind_text(addStmt, 2, [text_photodate.text UTF8String], -1, SQLITE_TRANSIENT);
        //sqlite3_bind_text(addStmt, 3, [txtplaceDetail.text UTF8String], -1, SQLITE_TRANSIENT);

        if (sqlite3_step(addStmt) == SQLITE_DONE)
        {
            //status.text = @"Contact added";
            //text_photoname.text = @"";
            //text_photodate.text= @"";
            //photo_img.hidden=YES;
        }
        //phone.text = @"";
        //if(SQLITE_DONE != sqlite3_step(addStmt))

        //    NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
        else
            sqlite3_reset(addStmt);

    }
    else
    {

    }


    sqlite3_close(database);
    [self getdata];
}

-(void)getdata
{
    [self checkAndCreateDatabase];
    sqlite3 *database;

    temparray = [[NSMutableArray alloc] init];

    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

        NSString *sql = [NSString stringWithFormat:@"select * from newtable"];
        const char *sqlStatement = [sql UTF8String];

         sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                NSMutableDictionary *item=[[NSMutableDictionary alloc] init];
                //NSMutableArray *item=[[NSMutableArray alloc] init];

                [item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)] forKey:@"eid"];
                [item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)] forKey:@"ename"];

                [temparray addObject:item];

            }
        }
        sqlite3_finalize(compiledStatement);

    }
    sqlite3_close(database);
    NSLog(@"%@",temparray);
    //NSLog(@"%@",item);
}
-(void)RemoveData
{   
    sqlite3 *database;
    sqlite3_stmt *deleteStmt=nil ;
    [self checkAndCreateDatabase];
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
        if(deleteStmt == nil) {
            const char *sql = "delete from newtable where eid = ?";
            if(sqlite3_prepare_v2(database, sql, -1, &deleteStmt, NULL) != SQLITE_OK)
                NSAssert1(0, @"Error while creating delete statement. '%s'", sqlite3_errmsg(database));
        }

        //When binding parameters, index starts from 1 and not zero.
        const char* the = [delString UTF8String];
        sqlite3_bind_text(deleteStmt, 1, the, -1, SQLITE_TRANSIENT);

        if (SQLITE_DONE != sqlite3_step(deleteStmt))
            NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(database));

        sqlite3_reset(deleteStmt);
    }
    sqlite3_close(database);


}
-(void)UpdateData
{
    [self checkAndCreateDatabase];
    //sqlite3 *db = [appDelegate database];
    sqlite3_stmt *update_statement;
    sqlite3 *db;


    NSString *sqlStr = [NSString stringWithFormat:@"UPDATE newtable SET ename=\"%@\" WHERE eid=\"%@\" ",txtname.text,txtid.text];
//    NSString *sqlStr = [NSString stringWithFormat:@"UPDATE newtable SET ename=? WHERE eid=?"];
    //const char *sql = "update Coffee Set CoffeeName = ?, Price = ? Where CoffeeID = ?";

//if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)

    const char *sql = [sqlStr UTF8String];
    if(sqlite3_open([databasePath UTF8String],&db)==SQLITE_OK){

    if (sqlite3_prepare_v2(db, sql, -1, &update_statement, NULL) == SQLITE_OK) {
            //UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"DatabaseNotAvailable", @"") message:[NSString stringWithUTF8String:sqlite3_errmsg(db)]delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
//            [alert show];   
//            [alert release];
        //return NO;
        //txtid.text=@"";
        //txtname.text=@"";
        statusm.text=@"updated";
    }

    int success = sqlite3_step(update_statement);
    if (success == SQLITE_ERROR) {
        NSAssert1(0, @"Error: failed to insert into the database with message '%s'.", sqlite3_errmsg(db));
        //return NO;
    }

    sqlite3_finalize(update_statement);
    }    //return YES;

}

- (BOOL) validateEmail: (NSString *) candidate {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    //  return 0;
    return [emailTest evaluateWithObject:candidate];
}

-(IBAction)btnTapped:(id)sender{

    if([self validateEmail:textid.text]==1)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Correct Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];

        [self savedata];
    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"You Enter Incoorect Email id." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];
    }
}
Ads
View Answers

January 8, 2012 at 4:04 PM


??


Ads









Tutorials   
Java Spring Hibernate Struts Training How to uninstall old version of Android Studio? How to install cocoapods in Max? item lookup How to get path of a file in iOS? [NSConcreteMutableData release]: message sent to deallocated instance Covert Bool to String - NSString Getting UIButton by Tag How to write Example code for comparing Strings in iPhone SDK? How to set placeholder in uitextfield programmatically? Example code of adding placeholder in UItextFeild how to get UIView by tag J2me image use ase smiley UILineBreakModeWordWrap is deprecated Framework for Mobile Applications How to print UIButton id System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h' has been modified since the precompiled header UINavigationController Navigating to back uinavigationcontroller add right button UINavigationController how to set title uitextfield hide keyboard on return dismissmodalviewcontrolleranimated first deprecated in ios 6.0 xcode 6.1.1 download How to remove virtual keypad from apps java How to remove virtual keypad from apps java How to remove virtual keypad from apps java code to send sms alerts using jsp online iphone app development how to devlop mobile application? What is WAP? download mp3 file on server in iphone home button macbook pro keyboard calling from iphone through programitically in iphone How to retrieve a field from SQLite to Edittext in android How to retrieve a field from SQLite to Edittext in android Sqlite3 Why NSMutableDictionary ios work with nsdictionary what is class methods in objective c what is class methods in objective c UIButton HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE Rad Calculator ANDROID J2ME Bar graph j2me image application iphone iphone

Ads

 
Advertisement null

Ads