DB에 몇 가지 쿼리를 삽입하기 위해 FMDB를 사용하려고합니다.
삽입에 대한 쿼리를 확인할 때 삽입 중이라는 메시지가 나타납니다.
나중에 실제로 테이블에서 데이터를 읽을 수 있습니다.
하지만 DB에서 정보를 읽으려고하면 다시 null로 반환됩니다.
Xcode 프로젝트에서 DB를 검사했을 때 업데이트 된 것으로 보이지 않습니다.
나를 혼란스럽게합니다. 어떤 제안이 문제가 될 수 있을까요?FMDB가 DB에 삽입되지 않음
0
A
답변
4
코드가 잘못되었습니다.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"];
FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
[db open];
[db executeUpdate:@"INSERT INTO foo (bar) VALUES (?)", bar];
[db close];
을 읽을 수 :
또한NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"];
FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
[db open];
NSMutableArray *bar = [[[NSMutableArray alloc] init] autorelease];
FMResultSet *s = [db executeQuery:@"select * from foo"];
while ([s next]) {
[bar addObject:[s stringForColumn:@"bar"]];
}
NSLog(@"%@", bar);
[db close];
체크 아웃을 내가 DB를 위치한 곳은 내가 작성하는 데 사용할 것입니다. 나는 당신의 방법을하는 것이 시뮬레이터에서 작동 할 것이지만 샌드 박스와 모든 장치 때문에 장치에서 작동하지 않을 것이라고 생각합니다.
행운을 빈다.
편집 :
- (void)createEditableCopyOfDatabaseIfNeeded {
// First, test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"];
success = [fileManager fileExistsAtPath:writableDBPath];
if (success) return;
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"db.sqlite"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
그리고와 application:didFinishLaunchingWithOptions
에서 그 방법을 실행합니다 : 당신이 먼저 projecttree에 데이터베이스를 넣어 있는지 확인
[self performSelector:@selector(createEditableCopyOfDatabaseIfNeeded) withObject:nil];
앱 위임에
넣어이 .
관련 문제
- 1. NServiceBus 속성이 삽입되지 않음
- 2. 카산드라가 삽입되지 않음
- 3. NHibernate가 db에 부모를 삽입하지 않음
- 4. 데이터 세트가 삽입되지 않습니다
- 5. SSIS의 XML 소스에서 OLE 대상으로 외래 키가 삽입되지 않음
- 6. 테이블이있는 Formview 컨트롤, runat 서버에 설정된 tr의 컨트롤이 삽입되지 않음
- 7. 양식 데이터가 DataMapper DB에 게시되지 않음
- 8. Log4net이 데이터베이스에 삽입되지 않습니까?
- 9. 값이 데이터베이스에 삽입되지 않았습니다.
- 10. '제목'이 삽입되지 않습니다.
- 11. 데이터베이스가 즉시 삽입되지 않습니다.
- 12. 행이 테이블에 삽입되지 않습니다.
- 13. Asp.Net MVC 3 - 엔티티에 Linq - Null과 PK가 db에 삽입되지 않습니다. null을 원하지 않습니다.)
- 14. 이 비디오가 삽입되지 않은 이유는 무엇입니까?
- 15. 모델의 데이터가 QTableView에 삽입되지 않았습니다.
- 16. 데이터베이스에 특정 문자가 삽입되지 않습니다.
- 17. 정의 된 값이 삽입되지 않았습니다.
- 18. MySQLdb가 삽입되지 않았습니다. _mysql은 괜찮습니다.
- 19. JAVA - DB에 삽입 문제
- 20. sqlserver db에 레코드 삽입
- 21. 봄 - 최대 절전 모드 지속은 삽입되지 않습니다
- 22. Heroku - rake db에 새 유적 에이전트가 실행되지 않음 : migrate
- 23. LINQ 큰 문자열 (64k)이 SQL 데이터베이스에 삽입되지 않았습니다.
- 24. SQL : 항목 조합이 두 번 삽입되지 않도록 방지
- 25. 콤보 상자 변경 이벤트가 삽입되지 않은 jquery 스크립트를 통해 C# 웹 브라우저 컨트롤로 실행되지 않음
- 26. Aspect에서 Spring MVC의 Autowired 종속성이 삽입되지 않았습니다.
- 27. ObjectdataSource 이벤트가 삽입되지 않고 삽입되는 중입니까?
- 28. Python/PyQT QString이 MySQL 데이터베이스에 삽입되지 않습니다.
- 29. TableAdapter를 사용하여 Access 2003 DB에 행 삽입
- 30. 몽구스 : db 객체를 db에 직접 삽입
무슨 일이 일어나는지'db.traceExecution = YES'와'db.logsErrors'를 사용합니까? –
db.traceExecution과 db.logsErrors를 모두 확인했습니다. 오류를 표시하지 않고 트랜잭션을 표시합니다. – Mush
DB에서 읽는 데 사용하는 코드를 게시 할 수 있습니까? –