Я использую sqlite в проекте c ++, но у меня возникает проблема, когда я использую WHERE для столбца со значениями TEXT
Я создал базу данных sqlite:
CREATE TABLE User( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(24))
Когда я пытаюсьчтобы получить значение столбца со значениями VARCHAR, оно не работает, и возвращает мне STATUS_CODE 101 сразу после sqlite3_step:
int res = 0;
sqlite3_stmt *request;
char *sqlSelection = (char *)"SELECT * FROM User WHERE name='bob' ";
int id = 0;
res = sqlite3_prepare_v2(db, sqlSelection, strlen(sqlSelection), &request, NULL);
if (!res){
while (res == SQLITE_OK || res == SQLITE_ROW){
res = sqlite3_step(request);
if (res == SQLITE_OK || res == SQLITE_ROW ){
id = sqlite3_column_int(request, 0);
printf("User exist %i \n",id);
}
}
sqlite3_finalize(request);
Я также пытался с LIKE, но он также не работает
SELECT * FROM User WHERE name LIKE '%bob%'
Но когда я выполняю тот же код, но для значения INTERGER
SELECT * FROM User WHERE id=1
Он работает нормально.
В браузере БД для SQLite все запросы работают нормально.