Когда использовать SQLITE_TRANSIENT против SQLITE_STATIC?

Я хотел бы создать / обновить текстовые столбцы в sqlite3. Когда я получаю строки после создания / обновления, текст становится «?». Однако целочисленные значения правильно сохраняются.

Мои текстовые заявления выглядят так:

const char *sql = "INSERT INTO todo(title, description, priority, status, created, expires, posx, posy, updated)"
                  " VALUES('?', '?', '?', '?', '?', '?', '?', '?', '?');";
if (sqlite3_prepare_v2(database, sql, -1, &insert_statment, NULL) != SQLITE_OK)
    ...
sqlite3_bind_text(update_statment, 5, [[dt stringFromDate:self.updated] UTF8String], -1, SQLITE_TRANSIENT);

Я пробовал SQLITE_TRANSIENT, а также SQLITE_STATIC. Кажется, что оба случая дают одинаковые результаты («?»). Я также проверил, что текстовые значения действительны, когда они передаются в соответствующие операторы SQL здесь.

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос