나는 사용자가 사용한 무게와 "reps"수를 기록 할 연습용 앱을 만들고 있는데, 7 일 동안 하루에 4 세트의 " 진행.Sqlite3 INSERT INTO 질문 × 377
나는 ROW
과 FIELD_DATA
의 두 열로 FIELDS
이라는 데이터베이스 테이블을 만들었으며 아래 코드를 사용하여 데이터를 db로로드 할 수 있습니다.
INSERT INTO FIELDS (ROW, FIELD_DATA)VALUES (%d, '%@');
아무런 변화가 없습니다 :하지만 코드는 내가로 한 Statment을 변경라는 SQL 문을,
INSERT OR REPLACE INTO FIELDS (ROW, FIELD_DATA)VALUES (%d, '%@');
있습니다. 그것은 데이터가 db에 기록되지 않습니다.
#define kFilname @"StData.sqlite3"
- (NSString *)dataFilePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:kFilname];
}
-(IBAction)saveData:(id)sender;
{
for (int i = 1; i <= 8; i++)
{
NSString *fieldName = [[NSString alloc]initWithFormat:@"field%d", i];
UITextField *field = [self valueForKey:fieldName];
[fieldName release];
NSString *insert = [[NSString alloc] initWithFormat:
@"INSERT OR REPLACE INTO FIELDS (ROW, FIELD_DATA)
VALUES (%d, '%@');",i, field.text];
// sqlite3_stmt *stmt;
char *errorMsg;
if (sqlite3_exec (database, [insert UTF8String],
NULL, NULL, &errorMsg) != SQLITE_OK)
{
// NSAssert1(0, @"Error updating table: %s", errorMsg);
sqlite3_free(errorMsg);
}
}
sqlite3_close(database);
}
그래서 어떻게 내가 원하는 것을 할 수있는 코드를 수정 않습니다 아래
코드인가? 처음에는 단순한 SQL 문 변경과 같았지만 분명히 더 많은 것이 있어야합니다. 나는 Objective-C와 iPhone 프로그래밍이 처음이다. 몇 년 동안 ASP에서 웹 앱을 만들면서 SQL 문을 처음 사용하는 것은 새로운 것이 아닙니다.도움을 주시면 대단히 감사하겠습니다.
데이터 모델에 대한 간단한 설명을 제공해 주시겠습니까? 이미 데이터를 저장하는 방식에 문제가 있다고 생각합니다. – Zento