sqlite3_prepare()
Compiling An SQL Statement
To execute an SQL query,it must first be compiled into a byte-code program using one of these routines. The first argument,"db",is adatabase connectionobtained from a prior successful call tosqlite3_open(),sqlite3_open_v2()orsqlite3_open16(). The database connection must not have been closed. The second argument,"zSql",is the statement to be compiled,encoded as either UTF-8 or UTF-16. The sqlite3_prepare() and sqlite3_prepare_v2() interfaces use UTF-8,and sqlite3_prepare16() and sqlite3_prepare16_v2() use UTF-16. If the nByte argument is less than zero,then zSql is read up to the first zero terminator. If nByte is non-negative,then it is the maximum number of bytes read from zSql. When nByte is non-negative,the zSql string ends at either the first ' 00' or 'u0000' character or the nByte-th byte,whichever comes first. If the caller knows that the supplied string is nul-terminated,then there is a small performance advantage to be gained by passing an nByte parameter that is equal to the number of bytes in the input stringincludingthe nul-terminator bytes as this saves SQLite from having to make a copy of the input string. If pzTail is not NULL then *pzTail is made to point to the first byte past the end of the first SQL statement in zSql. These routines only compile the first statement in zSql,so *pzTail is left pointing to what remains uncompiled. *ppStmt is left pointing to a compiledprepared statementthat can be executed usingsqlite3_step(). If there is an error,*ppStmt is set to NULL. If the input text contains no SQL (if the input is an empty string or a comment) then *ppStmt is set to NULL. The calling procedure is responsible for deleting the compiled SQL statement usingsqlite3_finalize()after it has finished with it. ppStmt may not be NULL. On success,the sqlite3_prepare() family of routines returnSQLITE_OK; otherwise anerror codeis returned. The sqlite3_prepare_v2() and sqlite3_prepare16_v2() interfaces are recommended for all new programs. The two older interfaces are retained for backwards compatibility,but their use is discouraged. In the "v2" interfaces,the prepared statement that is returned (thesqlite3_stmtobject) contains a copy of the original SQL text. This causes thesqlite3_step()interface to behave differently in three ways:
See also lists ofObjects,Constants,andFunctions. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |