Small. Fast. Reliable.
Choose any three.

## SQLite C Interface

## Bind array values to the CARRAY table-valued function

>     int sqlite3_carray_bind(
>       sqlite3_stmt *pStmt,        /* Statement to be bound */
>       int i,                      /* Parameter index */
>       void *aData,                /* Pointer to array data */
>       int nData,                  /* Number of data elements */
>       int mFlags,                 /* CARRAY flags */
>       void (*xDel)(void*)         /* Destructor for aData */
>     );

The sqlite3_carray_bind(S,I,P,N,F,X) interface binds an array value to one of the first argument of the carray() table-valued function. The S parameter is a pointer to the prepared statement that uses the carray() functions. I is the parameter index to be bound. P is a pointer to the array to be bound, and N is the number of eements in the array. The F argument is one of constants SQLITE_CARRAY_INT32, SQLITE_CARRAY_INT64, SQLITE_CARRAY_DOUBLE, SQLITE_CARRAY_TEXT, or SQLITE_CARRAY_BLOB to indicate the datatype of the array being bound. The X argument is not a NULL pointer, then SQLite will invoke the function X on the P parameter after it has finished using P, even if the call to sqlite3_carray_bind() fails. The special-case finalizer SQLITE_TRANSIENT has no effect here.

See also lists of Objects, Constants, and Functions.