добавление новой записи в таблицу базы данных sqlite - PullRequest
0 голосов
/ 18 июня 2011

Привет! Я написал этот код для добавления новой записи в таблицу базы данных. Но во время работы он показывает сообщение, что таблица не найдена. Пожалуйста, помогите мне, если вы найдете ошибку в этом коде.

char *sqlStatement;
sqlite3 *pDb;
char *errorMsg;
ןnt returnCode;
char *databaseName;
databaseName = "Child.db";
returnCode = sqlite3_open(databaseName, &pDb);
if(returnCode!=SQLITE_OK) {
    fprintf(stderr, "Error in opening the database. Error: %s",
            sqlite3_errmsg(pDb));
    sqlite3_close(pDb);
    return;
}
else{
    NSLog(@"Open Sucessful");
}

//sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES"
//                             " ('%s')",[strTxtFldValue cString],"childname");
sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES  ('%s')",strTxtFldValue);
NSLog(@"sqlStatement....%c",sqlStatement);
returnCode = sqlite3_exec(pDb, sqlStatement, 0, 0, &errorMsg);
NSLog(@"return code %d",returnCode);
if(returnCode!=SQLITE_OK) {
    fprintf(stderr,
            "Error in inserting into the stocks table. Error: %s", errorMsg);
    sqlite3_free(errorMsg);
}
else{
    NSLog(@"inserted");
}
sqlite3_free(sqlStatement); 

Ответы [ 3 ]

2 голосов
/ 05 июня 2012

Попробуйте создать базу данных времени выполнения.

sqlite3_exec(database,
                 "CREATE TABLE IF NOT EXISTS PersonalDetailsTbl (ID INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,email TEXT,phoneNo TEXT,DOB TEXT,spouseName TEXT,aniversaryDate TEXT)",
                 NULL, NULL, NULL);

sqlite3_exec(database, [[NSString stringWithFormat:
                         @"INSERT INTO PersonalDetailsTbl VALUES(NULL, '%@','%@','%@','%@','%@', '%@')", 
                         name,email,phoneNo,DOB,spouseName,aniversaryDate]
                        UTF8String],
             NULL, NULL, NULL);
1 голос
/ 22 марта 2012

@ user804417 Как вы создаете таблицу базы данных?Если вы создаете его вручную, а затем добавляете файл базы данных в папку resouce, что может работать в симуляторе, но может создать проблемы при запуске приложения на устройстве, так что это единственная возможность получить ошибку, такую ​​как NOНАЙДЕННАЯ ТАБЛИЦА .

Порядок решения проблемы при попытке создания базы данных из приложения, когда вы запускаете приложение, это определенно решит вашу проблему.

0 голосов
/ 20 июня 2011

Если вы выполните тот же запрос вставки из вашего программного обеспечения sqlite, вы получите тот же результат.Таким образом, может быть ошибка при указании имени таблицы в вашем приложении.Или, может быть, вы даете неправильное имя базы данных ...

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