12.11.2012, 15:07. Просмотров 696. Ответов 0
привет,есть проблема. в менеджере firefox для sqlite создал базу, она состоит из одной таблицы, для того что бы хранить id видео, его название и описание. Специально из менеджера добавил запись(просто для тестирования)
Чуть ниже есть два кусочка 1) просмотр данных(выводятся в лог) и 2) добавление в базу
Проблема в том, что все работает хорошо, нажимаю кнопку, первый кусок показвает данные , воторой добавляет, но стоит закрыть приложение и запустить заново - все, в таблице только первая запись (которую добавил из самого менеджера sql)
В чем может быть косячок? Куда могут пропадать данные.
Objective-C |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"VMmovie.sqlite"];
BOOL success = [fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate database file '%@'.", dbPath);
}
if(!(sqlite3_open([dbPath UTF8String], &myDB) == SQLITE_OK))
{
NSLog(@"An error has occured.");
}
//кусок кода для просмотра записей в базе
NSString* selectQuery = @"SELECT id, movieName, description FROM infomovies ORDER BY id";
sqlite3_stmt* sqlStatement;
int ress = sqlite3_prepare_v2(myDB, [selectQuery UTF8String], -1, &sqlStatement, nil);
if (SQLITE_OK == ress) {
while (sqlite3_step(sqlStatement)==SQLITE_ROW) {
char* nameid = (char*)sqlite3_column_text(sqlStatement, 0);
char* movieName = (char*)sqlite3_column_text(sqlStatement, 1);
char* description = (char*)sqlite3_column_text(sqlStatement, 2);
NSLog(@"id= %s\tFirstName= %s\tSecondName= %s",nameid,movieName,description);
}
sqlite3_finalize(sqlStatement);
NSLog(@"Select OK :)");
}else {
NSLog(@"Error in Select :(");
}
//добавление в базу
NSString *insertQuery =[[NSString alloc] initWithFormat:@"INSERT INTO infomovies (id, movieName, description) VALUES ('%d', '%@', '%@')", idVideo, videoName, @"DESCRIPTION!LKNFKLDJFKSLJFKSLJFLKSJFKSLdsfsdfsdfsdfsdfsdfsdfoirjfeiorjiFIGJDIFGJDIOGJDIGJDIGJ"];
NSLog(@"%@",insertQuery);
char* errInfo;
int result = sqlite3_exec(myDB, [insertQuery UTF8String], nil, nil, &errInfo);
if (SQLITE_OK == result) {
NSLog(@"Row Added :)");
}else {
//NSString* err = [[NSString alloc]initWithUTF8String:errInfo];
NSLog(@"error in adding :(");
return;
} |
|