詳解iPhone連接Sqlite數(shù)據(jù)庫(kù) 實(shí)例操作
詳解iPhone連接Sqlite數(shù)據(jù)庫(kù) 實(shí)例操作是本文要介紹的內(nèi)容,主要是以代碼實(shí)現(xiàn),來講述了一些iPhone連接Sqlite數(shù)據(jù)庫(kù)的代碼,來看詳細(xì)內(nèi)容。
相信在N多應(yīng)用中要涉及數(shù)據(jù)庫(kù)操作
- sqlite3 *database;
 - NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 - NSString *documentsDirectory = [paths objectAtIndex:0];
 - NSString *strPaths = [documentsDirectory stringByAppendingPathComponent:kFilename];
 - if (sqlite3_open([strPaths UTF8String], &database) != SQLITE_OK) {
 - sqlite3_close(database);
 - NSAssert(0, @"Failed to open databse");
 - }
 - NSString *createSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT)";
 - if(sqlite3_exec(database, [createSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK){
 - sqlite3_close(database);
 - NSAssert1(1, @"Error create table :%s", errorMsg);
 - }
 - NSString *query = @"SELECT ROW ,FIELD_DATA FROM FIELDS ORDER BY ROW";
 - sqlite3_stmt *statement;
 - if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK){
 - while (sqlite3_step(statement) == SQLITE_ROW) {
 - int row = sqlite3_column_int(statement, 0);
 - char *rowData = (char *)sqlite3_column_text(statement, 1);
 - NSString *fieldName = [[NSString alloc] initWithFormat:@"field%d", row];
 - NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];
 - UITextField *field = [self valueForKey:fieldName];
 - field.text = fieldValue;
 - [fieldName release];
 - //[fieldName release];
 - [fieldValue release];
 - }
 - sqlite3_finalize (statement);
 - }
 
sqllite存在沙盒內(nèi),所以打開的時(shí)候不需要name和password,但由于字符的格式不用,所以需要通過,[nsString, UTF8String]來轉(zhuǎn)換。
- sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil),這是執(zhí)行sql語(yǔ)句的命令。statement記錄狀態(tài)。
 - sqlite3_column_*(statement, 0);返回字段值
 - sqlite3_finalize (statement);結(jié)束退出
 
小結(jié):詳解iPhone連接Sqlite數(shù)據(jù)庫(kù) 實(shí)例操作的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!















 
 
 

 
 
 
 