Q & A
글수 1,540
sqlite3을 사용하여 저장된 데이터를 가지고오고 또는 변경을 하려고합니다. getECO라는 함수는 데이터를 가지고오는함수이구요.
그런데 getECO를 사용할경우, no such setting 라는 애러 메시지를 출력합니다. 아래 sqlite3_open까지 실행되고 sqlite3_prepare_v2이부분에서 if문으로 들어가지않고 if문을 빠져나옵니다. 분명 Resources 파일에 aa.sqlite파일을 넣었구, Frameworks에도 libsqlite3.dylib도 넣었습니다. 그런데 DB를 찾을수 없다고 하는데, 고수님들 도와주세요.
-(void) getECO
{
databaseName = @"aa.sqlite";
NSString *documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
sqlite3_stmt *statement;
unsigned char *sql = "SELECT nulltime,speed,rpm FROM setting";
if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) //이부분에서 팅깁니다.
{
while(sqlite3_step(statement) == SQLITE_ROW)//해당 테이블엔 1개의 데이터밖에 없습니다.
{
SETTING.nulltime_Setting = (int)sqlite3_column_int(statement,0);
SETTING.speed_Setting = (int)sqlite3_column_int(statement,1);
SETTING.RPM_Setting = (int)sqlite3_column_int(statement,2);
}
}
else
{
NSAssert1(0, @"ERROR : '%s'", sqlite3_errmsg(database));
}
sqlite3_finalize(statement);
}
else
{
NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
}
sqlite3_close(database);
}
그런데 getECO를 사용할경우, no such setting 라는 애러 메시지를 출력합니다. 아래 sqlite3_open까지 실행되고 sqlite3_prepare_v2이부분에서 if문으로 들어가지않고 if문을 빠져나옵니다. 분명 Resources 파일에 aa.sqlite파일을 넣었구, Frameworks에도 libsqlite3.dylib도 넣었습니다. 그런데 DB를 찾을수 없다고 하는데, 고수님들 도와주세요.
-(void) getECO
{
databaseName = @"aa.sqlite";
NSString *documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
sqlite3_stmt *statement;
unsigned char *sql = "SELECT nulltime,speed,rpm FROM setting";
if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) //이부분에서 팅깁니다.
{
while(sqlite3_step(statement) == SQLITE_ROW)//해당 테이블엔 1개의 데이터밖에 없습니다.
{
SETTING.nulltime_Setting = (int)sqlite3_column_int(statement,0);
SETTING.speed_Setting = (int)sqlite3_column_int(statement,1);
SETTING.RPM_Setting = (int)sqlite3_column_int(statement,2);
}
}
else
{
NSAssert1(0, @"ERROR : '%s'", sqlite3_errmsg(database));
}
sqlite3_finalize(statement);
}
else
{
NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
}
sqlite3_close(database);
}

생성된 database가 위치한 document를 접근할수 있을 겁니다.