Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using SQLite with iOS... very beginner program

Tags:

sqlite

ios

I am attempting to write an application in which I have two text fields that I will be using for input. The input taken from the text fields are being initialized as a string. So what I want to accomplish is:

  • Create an SQLite database (file) that will be saved within the Xcode project (I'm not sure where it can be saved to, but I would need to be able to read it and write to it).
  • I then want to place the strings (from the text field inputs) into the SQLite table, which will only have two fields (for simplicity). I'm using a button to accept the input from the text fields, place the input into strings, and then put the value of the strings into a label(s).
  • I ultimately will want to place the strings from the text fields into the table, and then read the table to "grab" the strings and display them into the labels. All of this would be done by the click of a button.

I realize this is very specific, but I have been having a difficult time finding anything simple to accomplish this. I am very new to iOS development and I appreciate if anyone could be as specific and detailed as possible, or at least point me to some resources that would teach me how to accomplish this.

I am using Xcode v4.3.2 and I do not use Storyboard or ARC. I tried to be as detailed as possible, but as you can, my goal is really simple.

I'm tapped out and I appreciate all the help I can get.

Thanks! -Matt

like image 206
Skizz Avatar asked Feb 20 '23 15:02

Skizz


1 Answers

  • creating a database file: simply drop your data.sqlite file in your xcode project, as you drop any other class or image resource. Please note, that you will have to copy the file to writeable directory after app installation. take a look at createeditablecopyofdatabaseifneeded.
  • open your database with sqlite3_open with respect to your new database location.
  • query the database as you like with sqlite3_prepare_v2

a simple query snippet looks like:

NSString *querystring;

// create your statement
querystring= [NSString stringWithFormat:@"SELECT text1, text2 FROM datatable;"];  

const char *sql = [querystring UTF8String];

NSString *text1 = nil;
NSString *text2 = nil;

if (sqlite3_prepare_v2(db, sql, -1, &statement, NULL)!=SQLITE_OK){

    NSLog(@"sql problem occured with: %s", sql);
    NSLog(@"%s", sqlite3_errmsg(db));

}
else
{
    // you could handle multiple rows here
    while (sqlite3_step(statement) == SQLITE_ROW) {            

       text1 = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 0)];
       text2 = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)];

    } // while        

}
sqlite3_finalize(statement);

// go on with putting data where you want
like image 107
alex Avatar answered Mar 07 '23 06:03

alex