Глубокая проблема со значениями, не вставляемыми в базу данных sqlite -iPhone - PullRequest
0 голосов
/ 09 февраля 2011

У меня есть несколько контроллеров представления, контроллер регистрации просмотра, контроллер просмотра контактов, контроллер добавления новых контактов и т. Д.

У меня есть приведенный ниже код в контроллере регистрации

 DatabaseCRUD *database = [[DatabaseCRUD alloc] init];
       NSMutableString *registrationquery=[NSMutableString stringWithFormat:@"insert into BARvalues values ('%@','%@','%@','%@','%@','%@')",[name text],[emailAddress text],[mobileNumber text],[password text],[country text],@"0"];
        NSLog(@"registrationquery is %@",registrationquery);
            [database updatenewregistration:registrationquery];
            [database release];

            DatabaseCRUD *database1 = [[DatabaseCRUD alloc] init];
            NSMutableString *registrationquery1=[NSMutableString stringWithFormat:@"insert into contacts values ('1234','1234')"];
            NSLog(@"registrationquery is %@",registrationquery1);
            [database1 updatenewregistration:registrationquery1];
            [database1 release];

            DatabaseCRUD *database2 = [[DatabaseCRUD alloc] init];
            NSMutableString *registrationquery2=[NSMutableString stringWithFormat:@"insert into contacts values ('abcd','abcd')"];
            NSLog(@"registrationquery is %@",registrationquery2);
            [database2 addcontacts:registrationquery2];
            [database2 release];

вышеуказанный код работает нормально.он вставляет значения в базу данных sqlite.Вот проблема, у меня есть почти тот же код в другом viewcontroller (контакты, addcontacts) и значения не вставляются в базу данных sqlite. Вот код.

DatabaseCRUD *database = [[DatabaseCRUD alloc] init];
NSMutableString *registrationquery=[NSMutableString stringWithFormat:@"insert into contacts values ('raja','shekar')"];
NSLog(@"registrationquery is %@",registrationquery);
[database updatenewregistration:registrationquery];
[database release];

DatabaseCRUD *database1 = [[DatabaseCRUD alloc] init];
NSMutableString *registrationquery1=[NSMutableString stringWithFormat:@"insert into contacts values ('rajesh','neelam')"];
NSLog(@"registrationquery is %@",registrationquery1);
[database1 addcontacts:registrationquery1];
[database1 release];

я не вижу никакой причиныпочему объект базы данных вставляется в один viewcontroller, а не в другой viewcontroller.Любая помощь будет оценена.Я пытался выяснить, где ошибка весь день, и я не хочу больше тратить время.любая помощь, пожалуйста ????

Я ставлю точки останова на каждый метод объекта базы данных, чтобы увидеть, если его вставка, нет ошибки вообще.кажется, что он проходит через sqlstatment, но вставка не происходит.Вот код сохранения значений в базе данных. Вот код для вставки базы данных.

-(void) addcontacts :(NSString *)query
{

    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
    {
        NSLog(@"query is %@",query);
        sqlStatement=[query cStringUsingEncoding:NSASCIIStringEncoding];

        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
        {
            while(sqlite3_step(compiledStatement) == SQLITE_ROW)
            {
                NSLog(@"new contact updated");
            }
            sqlite3_finalize(compiledStatement);  
        }
        sqlite3_close(database);
    }
}

1 Ответ

0 голосов
/ 09 февраля 2011

Это где-то между ответом и комментарием - при необходимости интерпретируйте.

Я предполагаю, что операторы вставки возвращают некоторый код ошибки, верно?Каковы их ценности?Это отправит вас в долгий путь к вашему решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...