Для исполнения SQL выражения в SQLite требуется откомпилировать его в байт-код при помощи этих функций, различие которых во втором параметре, являющемся SQL выражением в UTF-8 кодировке для sqlite3_prepare() и UTF-16 кодировке для sqlite3_prepare16().
Первый аргумент db – хендл базы данных SQLite. Второй аргумент zSql – SQL выражение, которое должно быть скомпилировано. Если nBytes меньше нуля, то функция будет читать zSql до первого терминатора строки '\000', в случае если nBytes больше нуля это длина zSql в байтах (а не в символах).
*pzTail – указатель на следующий байт окончание первого SQL выражения в zSql. Эти функции обрабатывают только первое SQL выражение в zSql и после их вызова *pzTail укажет на следующее выражение, которое было не откомпилировано.
*ppStmt – указатель на откомпилированное выражение, которое может быть исполнено при помощи sqlite3_step(). Если при компиляция была неудачной или zSql не содержал SQL выражений, значением *ppStmt будет NULL.
При удачном вызове кодом возврата будет SQLITE_OK. В противном случае – код ошибки.