2013-06-04 1 views
0
-(BOOL)createDB{ 
     NSString *docsDir; 
     NSArray *dirPaths; 
     // Get the documents directory 
     dirPaths = NSSearchPathForDirectoriesInDomains 
     (NSDocumentDirectory, NSUserDomainMask, YES); 
     docsDir = dirPaths[0]; 
     // Build the path to the database file 
     databasePath = [[NSString alloc] initWithString: 
        [docsDir stringByAppendingPathComponent: @"student.db"]]; 
     BOOL isSuccess = YES; 
     NSFileManager *filemgr = [NSFileManager defaultManager]; 
     if ([filemgr fileExistsAtPath: databasePath ] == NO) 
     { 
      const char *dbpath = [databasePath UTF8String]; 
      if (sqlite3_open(dbpath, &database) == SQLITE_OK) 
      { 
       char *errMsg; 
       const char *sql_stmt = 
       "create table if not exists studentsDetail (regno integer 
       primary key, name text, department text, year text)"; 
       if (sqlite3_exec(database, sql_stmt, NULL, NULL, &errMsg) 
        != SQLITE_OK) 
       { 
        isSuccess = NO; 
        NSLog(@"Failed to create table"); 
       } 
       sqlite3_close(database); 
       return isSuccess; 
      } 
      else { 
       isSuccess = NO; 
       NSLog(@"Failed to open/create database"); 
      } 
     } 
     return isSuccess; 
} 
다음

구문 오류는 상수 문자열을 분할 할 경우이 라인구문 오류가

const char *sql_stmt = [@"create table if not exists studentsDetail (regno integer primary key, name text, department text, year text)" UTF8String]; 
+2

당신은 오류를 붙여 넣을 수 있습니다? –

+0

코드를 다음과 같이 바꿉니다. const char * sql_stmt = [@ "존재하지 않는 경우 테이블 만들기 studentsDetail (regno 정수 기본 키, 이름 텍스트, 부서 텍스트, 연도 텍스트)"UTF8String]; – SRI

+0

무엇이 오류입니까? 그 줄에는 문제가없는 것 같습니다. –

답변

-1

에서 온 여러 소스 라인에 넣으려면 각 부분을으로 묶어야합니다. tation 마크 :

const char *sql_stmt = 
"create table if not exists studentsDetail (regno integer " 
"primary key, name text, department text, year text)"; 

대신은 :

const char *sql_stmt = 
"create table if not exists studentsDetail (regno integer 
primary key, name text, department text, year text)"; 
+0

필요한 모든 문자열이 C 문자열이면 NSString을 먼저 만들 필요가 없습니다. –

0

로 코드를 교체하십시오

const char *sql_stmt = "create table if not exists studentsDetail (regno integer 
         primary key, name text, department text, year text)";