2
데이터베이스가있는 iPhone 응용 프로그램을 만들고 있습니다. 이 데이터베이스에서 datepicker
을 사용하여 선택한 날짜를 저장하려고합니다. 하지만 쿼리를 삽입 할 때마다 충돌이 발생하고 표시되는 오류 즉, -[__NSDate UTF8String]: message sent to de allocated instance 0x5db1bf0.
이 오류를 해결할 수 없습니다. 제발 sqlite에 날짜를 삽입하는 몇 가지 솔루션을 제공하십시오.날짜를 sqlite에 삽입하십시오.
대단히 감사합니다.
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (btntagvalue == 2) {
if (buttonIndex != [actionSheet cancelButtonIndex]) {
selectedDate1 = [pickerView date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
frmdatestring = [formatter stringFromDate:selectedDate1];
newfromdate = [[NSDate alloc]init];
newfromdate = [[selectedDate1 addTimeInterval:-21600*4]copy];
NSLog(@"newdateis:%@",newfromdate);
fromdate.text = frmdatestring;
NSLog(@"proper date:%@",fromdate.text);
}
}
else if (btntagvalue == 3)
{
if (buttonIndex != [actionSheet cancelButtonIndex]) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
selectedDate2 = [pickerView1 date];
LastDate = selectedDate2;
todatestring = [formatter stringFromDate:selectedDate2];
todate.text = todatestring;
NSLog(@"proper date:%@",todate.text);
[self counteddays];
}
}
}
-(IBAction)savedetails:(id)sender
{
docname = doctname;
mail = email;
contactnum = contact;
medicname = mediname;
medictype = meditype;
Lastdatecolmn = (NSString*)LastDate;
[self insert1];
NSLog(@"docname:%@",docname);
NSLog(@"mail:%@",mail);
NSLog(@"contactnum:%@",contactnum);
NSLog(@"medicname:%@",medicname);
NSLog(@"medictype:%@",medictype);
for (int i =0; i<=[totaltimewithdate count]-1; i++) {
Dtime = [totaltimewithdate objectAtIndex:i];
[self insert];
}
[self docmedname];
}
-(void)insert
{
sqlite3_stmt *addStmt = nil;
if(addStmt == nil)
{
const char *sql = "insert into medicationdetail(doctorname, emailid, contactno,medicationname, medicationtype, datetime,LastDateColmn) values (?,?,?,?,?,?,?)";
//NSLog(@"sq; %@", sql);
if(sqlite3_prepare_v2(database, sql , -1, &addStmt, NULL) != SQLITE_OK)
{
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_text(addStmt, 1, [docname UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 2, [mail UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 3, [contactnum UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 4, [medicname UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 5, [medictype UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 6, [Dtime UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 7, [Lastdatecolmn UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
{
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
}
}
당신이 게시 할 수 있다면 그것은 도움이됩니다 사용중인 코드를 사용하면보다 구조화 된 응답을 얻을 수 있습니다. –
plz 코드를 제공합니다 .. – Maulik
DATETIME으로 입력하면 해당 날짜 개체를 문자열로 저장하거나 double로 저장하면 더 좋습니다. – Narayana