나는 다음과 같은 기능을 사용하여 내 C 프로그램에 SQLite는 데이터베이스 내부의 이름 열을 업데이트하기 위해 노력하고있어 :SQLite3 오류 : ''가까이 '': 구문 오류 '?
void update_name(int row, wchar_t* name, int maxnamelen){
const wchar_t* update_tempate = L"UPDATE mytable SET name='%s' WHERE(id=%d);";
wchar_t* update = calloc(sizeof(wchar_t*), maxnamelen+wcslen(update_template));
swprintf(update, update_template, name, row);
sqlite3_stmt *stmt;
sqlite3_prepare16(sqdb, update, sizeof(update), &stmt, 0);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
}
하지만 오류 near "UP" : syntax error
를 얻을 수 있기 때문에 나는 행, 불행하게도 업데이트되지 않습니다.
어떻게 문제를 해결할 수 있습니까?
가 calloc''의 첫 번째 매개 변수는 sizeof (wchar_t를)'해야한다; 당신은 같은 형식의 문제를 방지하기 위해 매개 변수를 사용한다 그리고 당신은 제로 터미네이터를 잊어 버렸습니다. –
sizeof (wchar_t *)는 정확하지만 실수는 제로 종결자를 잊어 버린 것입니다. – user3457200
'wchar_t *'는 포인터이지만 문자 배열을 할당하려고합니다. –