2012-04-14 7 views
0

하나의 테이블에서 데이터를 가져 와서 다른 테이블로 이동하려고합니다. 먼저 db_data 데이터베이스의 Items 테이블에서 모든 레코드를 선택합니다. 그런 다음 해당 테이블에있는 모든 레코드에 대해 db_information 데이터베이스의 Items 테이블에 레코드를 삽입해야합니다. db_information 데이터베이스의 Items 테이블에 하나의 레코드 만 기록합니다. db_data 데이터베이스의 Items 테이블에 8 개의 레코드가 있습니다. 그렇다면 내 기록을 모두 삽입하지 않는 이유는 무엇입니까?하나의 레코드 만 삽입하는 다른 데이터베이스에 삽입하십시오.

strSQL = @"SELECT GID FROM Items"; 
chrStmt = [strSQL UTF8String]; 
if(sqlite3_prepare_v2(db_data, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){ 
    while(sqlite3_step(cmpStmt) == SQLITE_ROW){ 
     char *val = (char *)sqlite3_column_text(cmpStmt, 0); 
     NSString *strVal = [NSString stringWithUTF8String:val]; 
     strSQL = [NSString stringWithFormat:@"INSERT INTO Items (GID) VALUES ('%@')", strVal]; 
     chrStmt = [strSQL UTF8String]; 
     if(sqlite3_prepare_v2(db_information, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){ 
      sqlite3_step(cmpStmt); 
     } 
    } 
} 

답변

1

나는 어쩌면 당신이 거짓으로 당신의 변수 strSQL, chrStmt 특히 cmpStmt를 재사용하는 것이라고 생각합니다. 이것은 모두 루프 상태와 본체 인 while에서 사용됩니다.

다른 데이터베이스에 별도의 변수를 사용해보십시오.

관련 문제