Я не могу вставить данные в свой sqlite db. У меня нет никакой ошибки, но значения не вставляются в db

Вопрос:

Вот мой код, который я написал..

NSArray *path= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docpath = [path objectAtIndex:0];
dbpathstring = [docpath stringByAppendingPathComponent:@"UserTable.db"];
char *error,*error1;

NSFileManager *filemanager= [NSFileManager defaultManager];
if(![filemanager fileExistsAtPath:dbpathstring])
{
const char *dbpath=[dbpathstring UTF8String];

if(sqlite3_open(dbpath, &userdb1)==SQLITE_OK)
{
const char *sql_stat= "CREATE TABLE IF NOT EXISTS USERTABLE (CARDNUMBER INTEGER,BALANCE INTEGER,DATE TEXT)";
sqlite3_exec(userdb1, sql_stat, NULL, NULL, &error);
sqlite3_close(userdb1);

}
}


if(sqlite3_open([dbpathstring UTF8String], &userdb1)==SQLITE_OK)
{


NSString *insertstmnt= [NSString stringWithFormat:@"INSERT INTO USERTABLE (CARDNUMBER,BALANCE,DATE) VALUES((\"%d\", \"%d\", \"%s\")",[crd1 intValue],[bal1 intValue],[rdt1 UTF8String]];

const char *insert_stmt = [insertstmnt UTF8String];


sqlite3_exec(userdb1, insert_stmt, NULL, NULL, &error1);

NSLog(@"After Creation in insert exec");

NSLog(@"row added");
UserTables *usertable = [[UserTables alloc]init];
[usertable setCardnumber:[crd1 intValue]];
[usertable setBalance:[bal1 intValue]];
[usertable setDate:rdt1];
[sections addObject:usertable];


sqlite3_close(userdb1);

Лучший ответ:

У вас есть дополнительный ( в вашем запросе INSERT, вызывая синтаксическую ошибку:

INSERT INTO USERTABLE (CARDNUMBER,BALANCE,DATE) VALUES((\"%d\", \"%d\", \"%s\")

изменить на

INSERT INTO USERTABLE (CARDNUMBER,BALANCE,DATE) VALUES(\"%d\", \"%d\", \"%s\")

Оцените статью
TechArks.Ru
Добавить комментарий