А ты уже научился заряжать левой ногой свой телефон?
Ну блин, ну почему
rc = sqlite3_prepare(db, exec_str, 0, &stmt, 0);

то выдает ошибку 21, то не выдает, а

rc = sqlite3_prepare(db, exec_str, strlen(exec_str), &stmt, 0);

работает нормально, почему они не сделали чтоб если 0, то до конца строки запроса надо читать

надо блин внимательно читать документацию на библиотеки, перед тем как придумывать альтернативные решения