<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    //database operation

    打開數據庫 

     

    -(BOOL) opendatabase{

     

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mydb.sql"];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    BOOL find = [fileManager fileExistsAtPath:path];

    //找到數據庫文件mydb.sql

    if (find) {

             NSLog(@"Database file have already existed.");

             if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {

             sqlite3_close(database_);

             NSLog(@"Error: open database file.");

             return NO;

            }

             return YES;

    }

    if(sqlite3_open([path UTF8String], &database_) == SQLITE_OK) {

    //bFirstCreate_ = YES;

            [self createChannelsTable:database_];//在后面實現函數createChannelsTable

             return YES;

    } else {

            sqlite3_close(database_);

            NSLog(@"Error: open database file.");

            return NO;

    }

    return NO;

    }

     

    創建表

     

    - (BOOL) createChannelsTable:(sqlite3*)db{

    char *sql = "CREATE TABLE reports (id integer primary key,stime  text,stitle text,scal   text,sruntime text)";

    sqlite3_stmt *statement;

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

             NSLog(@"Error: failed to prepare statement:create reports table");

             return NO;

    }

    int success = sqlite3_step(statement);

    sqlite3_finalize(statement);

    if ( success != SQLITE_DONE) {

            NSLog(@"Error: failed to dehydrate:CREATE TABLE reports");

            return NO;

    }

    NSLog(@"Create table 'reports' successed.");

    return YES;

    }

     

    插入表 

     

    - (BOOL)insertOneChannel:(NSString*)stime mytitle:(NSString*)stitle mycal:(NSString*)scal myruntime:(NSString*)sruntime

    {

     

    sqlite3_stmt *statement;

    static char *sql = "INSERT INTO reports (id,stime,stitle,scal,sruntime) VALUES(NULL,?,?,?,?)";

    //問號的個數要和(cid,title,imageData,imageLen)里面字段的個數匹配,代表未知的值,將在下面將值和字段關聯。

    int success = sqlite3_prepare_v2(database_, sql, -1, &statement, NULL);

    if (success != SQLITE_OK) {

            NSLog(@"Error: failed to insert:channels");

             return NO;

    }

    //這里的數字12,34代表第幾個問號

    //sqlite3_bind_text(statement, 1, stime, -1, SQLITE_TRANSIENT);

    char *p = [stime cStringUsingEncoding:1];

    sqlite3_bind_text(statement, 1, [stime cStringUsingEncoding:1], -1, SQLITE_TRANSIENT);

    sqlite3_bind_text(statement, 2, [stitle cStringUsingEncoding:1], -1, SQLITE_TRANSIENT);

    sqlite3_bind_text(statement, 3, [scal cStringUsingEncoding:1], -1, SQLITE_TRANSIENT);

    sqlite3_bind_text(statement, 4, [sruntime cStringUsingEncoding:1], -1, SQLITE_TRANSIENT);

     

    success = sqlite3_step(statement);

    sqlite3_finalize(statement);

    if (success == SQLITE_ERROR) {

             NSLog(@"Error: failed to insert into the database with message.");

            return NO;

    }

    NSLog(@"Insert One Channel#############:id = _");

    return YES;

    }


    查詢表

    - (void) getChannels:(NSMutableArray*)fChannels{

    sqlite3_stmt *statement = nil;

    char *sql = "SELECT * FROM reports";

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

            NSLog(@"Error: failed to prepare statement with message:get channels.");

    }

    //查詢結果集中一條一條的遍歷所有的記錄,這里的數字對應的是列值。

    while (sqlite3_step(statement) == SQLITE_ROW) {

           //char* cid = (char*)sqlite3_column_text(statement, 1);

           char* stime = (char*)sqlite3_column_text(statement, 1);

           char* stitle =(char*)sqlite3_column_text(statement, 2);

           char* scal = (char*)sqlite3_column_text(statement, 3);

           char* sruntime= (char*)sqlite3_column_text(statement, 4);

     

           //NSString *tmp = [NSString stringWithCString:stitle encoding:1];

            myreportitem* ri = [[myreportitem alloc] init];

           ri.mytime = [NSString stringWithCString:stime encoding:1];

            ri.mytitle = [NSString stringWithCString:stitle encoding:1];

            ri.mycal = [NSString stringWithCString:scal encoding:1];

           ri.myruntime = [NSString stringWithCString:sruntime encoding:1];

     

           [fChannels addObject:ri];

           [ri release];

    }

    sqlite3_finalize(statement);

    }

    刪除記錄

    - (void)doClearReport: {

        

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mydb.sql"];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    BOOL find = [fileManager fileExistsAtPath:path];

    //找到數據庫文件mydb.sql

    if (find) {

            NSLog(@"Database file have already existed.");

             if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {

            sqlite3_close(database_);

            NSLog(@"Error: open database file.");

            return NO;

          }

          char *sql = "delete from reports";

           sqlite3_stmt *statement;

           if(sqlite3_prepare_v2(database_, sql, -1, &statement, nil) != SQLITE_OK) {

            NSLog(@"Error: failed to prepare statement:create reports table");

           return NO;

         }

         int success = sqlite3_step(statement);

          sqlite3_finalize(statement);

         if ( success != SQLITE_DONE) {

          NSLog(@"Error: failed to dehydrate:delete TABLE reports");

          return NO;

          }

          NSLog(@"Create table 'reports' successed.");

     

         sqlite3_close(database_);

     

       }

     

    }

    posted on 2010-09-28 11:09 seal 閱讀(335) 評論(0)  編輯  收藏 所屬分類: iPhone
    主站蜘蛛池模板: 久久久国产精品无码免费专区| 免费福利视频导航| 亚洲高清在线观看| 成人免费午夜无码视频| 免费在线观看自拍性爱视频| 亚洲国产另类久久久精品黑人 | 久久久久久一品道精品免费看| 亚洲w码欧洲s码免费| 全黄a免费一级毛片人人爱| 国产va在线观看免费| 亚洲狠狠婷婷综合久久| 亚洲中文字幕无码一久久区| 台湾一级毛片永久免费| 久久国产精品免费一区| 狠狠色伊人亚洲综合网站色| 亚洲午夜未满十八勿入网站2| 啦啦啦高清视频在线观看免费| 成人自慰女黄网站免费大全| 香蕉大伊亚洲人在线观看| 国产亚洲一区二区在线观看| 免费看片免费播放| 日韩人妻无码精品久久免费一 | 日韩在线视精品在亚洲| 久久精品国产精品亚洲毛片| 亚洲精品一级无码中文字幕| 18级成人毛片免费观看| 国产免费牲交视频免费播放| 亚洲色丰满少妇高潮18p| 亚洲国产天堂久久综合网站| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲一区二区三区免费视频| 不卡视频免费在线观看| 粉色视频成年免费人15次| 亚洲a级成人片在线观看| 国产成A人亚洲精V品无码| 亚洲AⅤ无码一区二区三区在线| 免费H网站在线观看的| 久99久精品免费视频热77| sss日本免费完整版在线观看| 亚洲区日韩精品中文字幕| 亚洲电影在线播放|