2014-11-10 2 views
-1
-(IBAction)saveData:(UIButton *)sender { 
    sqlite3_stmt *statement; 
const char *dbpath = [databasePath UTF8String]; 

if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK) 
{ 

    NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name , password , email) VALUES (\"%@\", \"%@\", \"%@\")", 
          self.theName.text ,self.thePass.text,self. Email.text]; 

    const char *insert_stmt = [insertSQL UTF8String]; 

    sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL); 

    if (sqlite3_step(statement) == SQLITE_DONE) 
    { 
     self.theStatus.text = @"Contact added"; 
     self.theName.text = @""; 
     self.Email.text = @""; 
     self.thePass.text = @""; 
    } 
    else { 
     self.theStatus.text = @"Failed to add contact"; 
    } 
    sqlite3_finalize(statement); 
    sqlite3_close(contactDB); 
}} 

이 코드를 사용하여 sqlite 데이터베이스에 데이터를 삽입하고 있습니다. 그러나 그것은 항상 "연락처를 추가하지 못했습니다"라는 동일한 대답을 보여줍니다. 나에게 사람sqlite3 데이터베이스에 연락처를 삽입 할 수 없습니다

+3

'sqlite3_prepare_v2()'및'sqlite3_step()'에서 반환 상태를 확인하고'sqlite3_errmsg()'를 사용하여 오류를보고하십시오. 그것은 당신에게 단서를 줄 것입니다. – trojanfoe

+0

선생님, 아무 생각이 들지 않습니다. 제발 자세히 설명해 주실 수 있나요 ?? –

+0

무엇에 관한 아이디어가 없습니까? 이 방법에 오류보고 기능을 추가 할 수 없다면 앞으로 더 많은 문제가 발생하게되고 걷기 전에 실행중인 것처럼 들립니다. – trojanfoe

답변

0

이 당신이

-(IBAction)saveData:(UIButton *)sender { 
sqlite3_stmt *statement; 
const char *dbpath = [databasePath UTF8String]; 

if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK) 
{ 
    NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name , password , email) VALUES (\"%@\", \"%@\", \"%@\")", 
          self.theName.text ,self.thePass.text,self. Email.text]; 

    const char *insert_stmt = [insertSQL UTF8String]; 

    if (sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL) == SQLITE_OK) 
    { 
     if (sqlite3_step(statement) == SQLITE_DONE) 
     { 
      self.theStatus.text = @"Contact added"; 
      self.theName.text = @""; 
      self.Email.text = @""; 
      self.thePass.text = @""; 
     } 
     else { 
      NSLog(@"sqlite3_step failed: %s", sqlite3_errmsg(contactDB)); 
      self.theStatus.text = @"Failed to add contact"; 
     } 

     sqlite3_finalize(statement); 
    } 
    else 
    { 
     NSLog(@"sqlite3_prepare_v2 failed: %s", sqlite3_errmsg(contactDB)); 
    } 

    sqlite3_close(contactDB); 
} 
else 
{ 
    NSLog(@"sqlite3_open failed: %s", sqlite3_errmsg(contactDB)); 
} 
} 

나는 그것의 컴파일을 테스트 할 수 없기 때문에이 오류가 무료하지 않을 수 있습니다 필요한 모든 오류 메시지를 얻을 수 사용에 도움, 그러나 이것은 당신이 오류를 얻을 방법에 대한 아이디어를 제공하십시오 .

+0

imotep ur 코드에서 나는 "@@ NSLOG (" "sqlite3_prepare_v2 실패 ....."에서 전에 다른 오류가 예상 오류를 gerring 오전 메시지입니다 –

+0

예상 되나요? – Imotep

+0

thnx alot guyz 내 오류 thnx 많이 찾았 어 –

관련 문제