开发者

Open two tables from one SQLite db in one iPhone Class?

small clarification is this possible to open two tables from one sqlite db in one iphone class??? but i can't open it please give me the solution i'm a beginner

here i tried coding

  - (void)viewDidLoad {
      [super viewDidLoad];
     list = [[NSMutableArray alloc] init];
       if ([material isEqualToString:@"Derlin"]) {

        [self sel1];
    }
    else if([material isEqualToString:@"Helers"]){

     [self sel2];    
   }
  }
  -(void)sel1 {

  [self createEditableCopyOfDatabaseIfNeeded];
   NSLog(@"numberOfRowsInSection");
   sqlite3_stmt *statement = nil;  // create a statement
   const char *sql = "Select * from material";  //create a query to display in the tableView
    if(sqlite3_open([writableDBPath UTF8String], &database) == SQLITE_OK) 
    {
     NSLog(@"sqlite3_open");
     if(sqlite3_prepare_v2(database, sql,-1, &statement, NULL)!=SQLITE_OK) 
        NSAssert1(0,@"Error Preparing Statement",sqlite3_errcode(database)); 

    else
    {
    while(sqlite3_step(statement) == SQLITE_ROW) // if the connection exists return the row of the query table
       {
          achemical = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_text(statement,0)];
          arates = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_text(statement,1)];
          anotes = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_tex开发者_如何学JAVAt(statement,2)];


          Chemical * chemic = [[Chemical alloc] initWithName:achemical rates:arates notes:anotes];

           [list addObject:chemic];
           [chemic release];
        }

      } 
   }
sqlite3_finalize(statement);

 }
  -(void)sel2 {
       [self createEditableCopyOfDatabaseIfNeeded];
      NSLog(@"numberOfRowsInSection"); 
       sqlite3_stmt *statement = nil;  // create a statement
      const char *sql = "Select * from material1";  //create a query to display in the tableView
      if(sqlite3_open([writableDBPath UTF8String], &database) == SQLITE_OK) 
     {
    NSLog(@"sqlite3_open");
    if(sqlite3_prepare_v2(database, sql,-1, &statement, NULL)!=SQLITE_OK) 
    NSAssert1(0,@"Error Preparing Statement",sqlite3_errcode(database)); 

    else
   {
          while(sqlite3_step(statement) == SQLITE_ROW) // if the connection exists return the row of the query table
      {
          achemical = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_text(statement,0)];
          arates = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_text(statement,1)];
          anotes = [NSString stringWithFormat:@"%s",(char *)sqlite3_column_text(statement,2)];
           Chemical * chemic = [[Chemical alloc] initWithName:achemical rates:arates notes:anotes];

           [list addObject:chemic];
           [chemic release];

     }

    }
  }
  sqlite3_finalize(statement);

 }

thanks in advance


Sure, it's easy. Download FMDB, add it to your project, and add two FMResultSet objects in your class, one for each (query against each) table.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜