Objective-C를 사용하여 SQLite DB에 데이터를 추가하고 있습니다. 텍스트 속성이있는 열이 있습니다.
문제는 해당 행에 숫자와 문자가 모두 있다는 것입니다. 그렇게하려고했을 때 오류가 발생했습니다. 하지만 숫자를 떼어 냈을 때 오류가 없었고 정상적으로 작동했습니다.
내 코드는 다음과 같습니다.
insert into myTable values(null '%@'), myText; // myText = @"2 Phones"
내 질문은 SQLite의 행 안에 숫자와 일반 텍스트를 모두 가질 수 있습니까?
최신 정보
다음을 수행하고 있습니다.
NSString *query = [NSString stringWithFormat:@"insert into myTable values(null, '%@')", self.textView1.text];
그런 다음 그렇게 할 것입니다.
[self.dbManager executeQuery:query];
문자열을 sqlite
문장으로 만듭니다.
일반적으로 값에 대한 자리 표시자가 sqlite3_prepare_v2
있는 SQL 문을 준비합니다 (사용 ) ?
.
insert into myTable (string_column_name, int_column_name) values (?, ?)
그런 다음을 사용 sqlite3_bind_text
하여 문자열 값을 첫 번째 값에 바인딩합니다 ?
(1 기반 인덱스 사용).
if (sqlite3_bind_text(statement, 1, [string UTF8String], -1, SQLITE_TRANSIENT) != SQLITE_OK) {
NSLog(@"bind text error: %s", sqlite3_errmsg(db));
sqlite3_finalize(statement);
return NO;
}
그리고 하나는 sqlite3_bind_int
숫자 값을 두 번째 값에 바인딩하는 데 사용 합니다 ?
.
if (sqlite3_bind_int(statement, 2, value) != SQLITE_OK) {
NSLog(@"bind int error: %s", sqlite3_errmsg(db));
sqlite3_finalize(statement);
return NO;
}
그런 다음 호출 sqlite3_step
하여 SQL을 수행 sqlite3_finalize
하고 준비된 명령문과 연관된 메모리를 해제 할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다