| SQLITE3_EXEC(3) | Library Functions Manual | SQLITE3_EXEC(3) |
sqlite3_exec —
one-Step query execution interface
#include
<sqlite3.h>
int
sqlite3_exec(sqlite3*,
const char *sql, int
(*callback)(void*,int,char**,char**), void *,
char **errmsg);
The sqlite3_exec() interface is a convenience wrapper around
sqlite3_prepare_v2(),
sqlite3_step(),
and
sqlite3_finalize(),
that allows an application to run multiple statements of SQL without having
to use a lot of C code.
The sqlite3_exec() interface runs zero or more UTF-8 encoded, semicolon-separate SQL statements passed into its 2nd argument, in the context of the database connection passed in as its 1st argument. If the callback function of the 3rd argument to sqlite3_exec() is not NULL, then it is invoked for each result row coming out of the evaluated SQL statements. The 4th argument to sqlite3_exec() is relayed through to the 1st argument of each callback invocation. If the callback pointer to sqlite3_exec() is NULL, then no callback is ever invoked and result rows are ignored.
If an error occurs while evaluating the SQL
statements passed into sqlite3_exec(), then execution of the current
statement stops and subsequent statements are skipped. If the 5th parameter
to sqlite3_exec() is not NULL then any error message is written into memory
obtained from
sqlite3_malloc()
and passed back through the 5th parameter. To avoid memory leaks, the
application should invoke
sqlite3_free()
on error message strings returned through the 5th parameter of
sqlite3_exec() after the error message string is no longer needed. If the
5th parameter to sqlite3_exec() is not NULL and no errors occur, then
sqlite3_exec() sets the pointer in its 5th parameter to NULL before
returning.
If an sqlite3_exec() callback returns non-zero, the sqlite3_exec() routine returns SQLITE_ABORT without invoking the callback again and without running any subsequent SQL statements.
The 2nd argument to the sqlite3_exec()
callback function is the number of columns in the result. The 3rd argument
to the sqlite3_exec() callback is an array of pointers to strings obtained
as if from
sqlite3_column_text(),
one for each column. If an element of a result row is NULL then the
corresponding string pointer for the sqlite3_exec() callback is a NULL
pointer. The 4th argument to the sqlite3_exec() callback is an array of
pointers to strings where each entry represents the name of corresponding
result column as obtained from
sqlite3_column_name().
If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer to an
empty string, or a pointer that contains only whitespace and/or SQL
comments, then no SQL statements are evaluated and the database is not
changed.
Restrictions:
These declarations were extracted from the interface documentation at line 364.
SQLITE_API int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ );
sqlite3(3), sqlite3_column_blob(3), sqlite3_column_name(3), sqlite3_finalize(3), sqlite3_malloc(3), sqlite3_prepare(3), sqlite3_step(3)
| January 24, 2024 | NetBSD 11.0 |