Small. Fast. Reliable.
Choose any three.

SQLite Requirement Matrix Details
bind_blob.html

Index Summary Markup Original


R-63285-37134-15488-58217-13163-52553-20689-06808 tcl slt th3 src

In the SQL statement text input to sqlite3_prepare_v2() and its variants, literals may be replaced by a parameter that matches one of following templates:

In the templates above, NNN represents an integer literal, and VVV represents an alphanumeric identifier.

/* IMP: R-63285-37134 */
# EVIDENCE-OF: R-63285-37134 In the SQL statement text input to
# sqlite3_prepare_v2() and its variants, literals may be replaced by a
# parameter that matches one of following templates: ? ?NNN :VVV @VVV
# $VVV In the templates above, NNN represents an integer literal, and
# VVV represents an alphanumeric identifier.

R-25857-01867-51039-59358-11204-13788-02264-02528 tcl slt th3 src

The values of these parameters (also called "host parameter names" or "SQL parameters") can be set using the sqlite3_bind_*() routines defined here.

/* IMP: R-25857-01867 */
# EVIDENCE-OF: R-25857-01867 The values of these parameters (also called
# "host parameter names" or "SQL parameters") can be set using the
# sqlite3_bind_*() routines defined here.

R-05367-01575-38544-05441-45705-50827-33382-05876 tcl slt th3 src

The first argument to the sqlite3_bind_*() routines is always a pointer to the sqlite3_stmt object returned from sqlite3_prepare_v2() or its variants.

/* IMP: R-05367-01575 */
# EVIDENCE-OF: R-05367-01575 The first argument to the sqlite3_bind_*()
# routines is always a pointer to the sqlite3_stmt object returned from
# sqlite3_prepare_v2() or its variants.

R-49438-33626-11664-14261-26905-24626-16262-08666 tcl slt th3 src

The second argument is the index of the SQL parameter to be set.

/* IMP: R-49438-33626 */
# EVIDENCE-OF: R-49438-33626 The second argument is the index of the SQL
# parameter to be set.

R-42798-04097-62077-21747-11472-32542-49000-45202 tcl slt th3 src

The leftmost SQL parameter has an index of 1.

/* IMP: R-42798-04097 */
# EVIDENCE-OF: R-42798-04097 The leftmost SQL parameter has an index of
# 1.

R-52009-56800-02876-38410-52331-04439-27959-64251 tcl slt th3 src

When the same named SQL parameter is used more than once, second and subsequent occurrences have the same index as the first occurrence.

/* IMP: R-52009-56800 */
# EVIDENCE-OF: R-52009-56800 When the same named SQL parameter is used
# more than once, second and subsequent occurrences have the same index
# as the first occurrence.

R-05272-22592-13374-24756-51597-06491-53677-55023 tcl slt th3 src

The index for named parameters can be looked up using the sqlite3_bind_parameter_index() API if desired.

/* IMP: R-05272-22592 */
# EVIDENCE-OF: R-05272-22592 The index for named parameters can be
# looked up using the sqlite3_bind_parameter_index() API if desired.

R-10933-37470-14937-54231-03343-64899-21190-46936 tcl slt th3 src

The index for "?NNN" parameters is the value of NNN.

/* IMP: R-10933-37470 */
# EVIDENCE-OF: R-10933-37470 The index for "?NNN" parameters is the
# value of NNN.

R-43536-61251-49653-37352-19988-51054-05906-53496 tcl slt th3 src

The NNN value must be between 1 and the sqlite3_limit() parameter SQLITE_LIMIT_VARIABLE_NUMBER (default value: 999).

/* IMP: R-43536-61251 */
# EVIDENCE-OF: R-43536-61251 The NNN value must be between 1 and the
# sqlite3_limit() parameter SQLITE_LIMIT_VARIABLE_NUMBER (default value:
# 999).

R-01766-15387-49282-35089-26578-35550-62519-17422 tcl slt th3 src

The third argument is the value to bind to the parameter.

/* IMP: R-01766-15387 */
# EVIDENCE-OF: R-01766-15387 The third argument is the value to bind to
# the parameter.

R-55392-56277-35725-48242-28273-14685-15840-32650 tcl slt th3 src

If the third parameter to sqlite3_bind_text() or sqlite3_bind_text16() or sqlite3_bind_blob() is a NULL pointer then the fourth parameter is ignored and the end result is the same as sqlite3_bind_null().

/* IMP: R-55392-56277 */
# EVIDENCE-OF: R-55392-56277 If the third parameter to
# sqlite3_bind_text() or sqlite3_bind_text16() or sqlite3_bind_blob() is
# a NULL pointer then the fourth parameter is ignored and the end result
# is the same as sqlite3_bind_null().

R-40874-07817-64808-61349-14164-22324-19538-25900 tcl slt th3 src

In those routines that have a fourth argument, its value is the number of bytes in the parameter. To be clear: the value is the number of bytes in the value, not the number of characters.

/* IMP: R-40874-07817 */
# EVIDENCE-OF: R-40874-07817 In those routines that have a fourth
# argument, its value is the number of bytes in the parameter. To be
# clear: the value is the number of bytes in the value, not the number
# of characters.

R-16566-16123-02807-20883-30772-24192-15588-47043 tcl slt th3 src

If the fourth parameter to sqlite3_bind_text() or sqlite3_bind_text16() is negative, then the length of the string is the number of bytes up to the first zero terminator.

/* IMP: R-16566-16123 */
# EVIDENCE-OF: R-16566-16123 If the fourth parameter to
# sqlite3_bind_text() or sqlite3_bind_text16() is negative, then the
# length of the string is the number of bytes up to the first zero
# terminator.

R-64084-34068-10533-17147-27964-33413-01127-42503 tcl slt th3 src

The fifth argument to the BLOB and string binding interfaces is a destructor used to dispose of the BLOB or string after SQLite has finished with it.

/* IMP: R-64084-34068 */
# EVIDENCE-OF: R-64084-34068 The fifth argument to the BLOB and string
# binding interfaces is a destructor used to dispose of the BLOB or
# string after SQLite has finished with it.

R-26196-02570-33266-26547-23836-43946-29062-31083 tcl slt th3 src

The destructor is called to dispose of the BLOB or string even if the call to the bind API fails, except the destructor is not called if the third parameter is a NULL pointer or the fourth parameter is negative.

/* IMP: R-26196-02570 */
# EVIDENCE-OF: R-26196-02570 The destructor is called to dispose of the
# BLOB or string even if the call to the bind API fails, except the
# destructor is not called if the third parameter is a NULL pointer or
# the fourth parameter is negative.

R-54601-24304-11179-56514-33634-52647-04973-51125 tcl slt th3 src

If the fifth argument is the special value SQLITE_STATIC, then SQLite assumes that the information is in static, unmanaged space and does not need to be freed.

/* IMP: R-54601-24304 */
# EVIDENCE-OF: R-54601-24304 If the fifth argument is the special value
# SQLITE_STATIC, then SQLite assumes that the information is in static,
# unmanaged space and does not need to be freed.

R-36996-21017-11130-54775-34081-21546-00217-47155 tcl slt th3 src

If the fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its own private copy of the data immediately, before the sqlite3_bind_*() routine returns.

/* IMP: R-36996-21017 */
# EVIDENCE-OF: R-36996-21017 If the fifth argument has the value
# SQLITE_TRANSIENT, then SQLite makes its own private copy of the data
# immediately, before the sqlite3_bind_*() routine returns.

R-63107-29542-42038-49029-17221-49854-37760-53513 tcl slt th3 src

The sixth argument to sqlite3_bind_text64() must be one of SQLITE_UTF8, SQLITE_UTF16, SQLITE_UTF16BE, or SQLITE_UTF16LE to specify the encoding of the text in the third parameter.

/* IMP: R-63107-29542 */
# EVIDENCE-OF: R-63107-29542 The sixth argument to sqlite3_bind_text64()
# must be one of SQLITE_UTF8, SQLITE_UTF16, SQLITE_UTF16BE, or
# SQLITE_UTF16LE to specify the encoding of the text in the third
# parameter.

R-19162-55388-28844-29887-54254-48882-22034-22486 tcl slt th3 src

The sqlite3_bind_zeroblob() routine binds a BLOB of length N that is filled with zeroes.

/* IMP: R-19162-55388 */
# EVIDENCE-OF: R-19162-55388 The sqlite3_bind_zeroblob() routine binds a
# BLOB of length N that is filled with zeroes.

R-61241-11973-05308-06384-59636-46330-32526-49143 tcl slt th3 src

A zeroblob uses a fixed amount of memory (just an integer to hold its size) while it is being processed.

/* IMP: R-61241-11973 */
# EVIDENCE-OF: R-61241-11973 A zeroblob uses a fixed amount of memory
# (just an integer to hold its size) while it is being processed.

R-09849-00220-60139-37223-30218-05088-34235-14106 tcl slt th3 src

A negative value for the zeroblob results in a zero-length BLOB.

/* IMP: R-09849-00220 */
# EVIDENCE-OF: R-09849-00220 A negative value for the zeroblob results
# in a zero-length BLOB.

R-03849-24470-04387-57438-43164-31085-17053-62847 tcl slt th3 src

The sqlite3_bind_pointer(S,I,P,T,D) routine causes the I-th parameter in prepared statement S to have an SQL value of NULL, but to also be associated with the pointer P of type T.

/* IMP: R-03849-24470 */
# EVIDENCE-OF: R-03849-24470 The sqlite3_bind_pointer(S,I,P,T,D) routine
# causes the I-th parameter in prepared statement S to have an SQL value
# of NULL, but to also be associated with the pointer P of type T.

R-52975-24025-19782-48078-21253-08318-64480-41617 tcl slt th3 src

D is either a NULL pointer or a pointer to a destructor function for P.

/* IMP: R-52975-24025 */
# EVIDENCE-OF: R-52975-24025 D is either a NULL pointer or a pointer to
# a destructor function for P.

R-09933-20910-17434-57069-20423-40847-01443-50853 tcl slt th3 src

SQLite will invoke the destructor D with a single argument of P when it is finished using P.

/* IMP: R-09933-20910 */
# EVIDENCE-OF: R-09933-20910 SQLite will invoke the destructor D with a
# single argument of P when it is finished using P.

R-12385-29357-06321-01436-47924-30729-53833-26197 tcl slt th3 src

If any of the sqlite3_bind_*() routines are called with a NULL pointer for the prepared statement or with a prepared statement for which sqlite3_step() has been called more recently than sqlite3_reset(), then the call will return SQLITE_MISUSE.

/* IMP: R-12385-29357 */
# EVIDENCE-OF: R-12385-29357 If any of the sqlite3_bind_*() routines are
# called with a NULL pointer for the prepared statement or with a
# prepared statement for which sqlite3_step() has been called more
# recently than sqlite3_reset(), then the call will return
# SQLITE_MISUSE.

R-14744-61161-64598-20723-40374-11950-32585-46634 tcl slt th3 src

Bindings are not cleared by the sqlite3_reset() routine.

/* IMP: R-14744-61161 */
# EVIDENCE-OF: R-14744-61161 Bindings are not cleared by the
# sqlite3_reset() routine.

R-06094-55152-33533-26668-27298-05995-61599-07184 tcl slt th3 src

Unbound parameters are interpreted as NULL.

/* IMP: R-06094-55152 */
# EVIDENCE-OF: R-06094-55152 Unbound parameters are interpreted as NULL.

R-26972-25540-17987-13345-11118-49972-58252-62199 tcl slt th3 src

The sqlite3_bind_* routines return SQLITE_OK on success or an error code if anything goes wrong.

/* IMP: R-26972-25540 */
# EVIDENCE-OF: R-26972-25540 The sqlite3_bind_* routines return
# SQLITE_OK on success or an error code if anything goes wrong.

R-00110-20874-52504-15299-56251-38354-26784-53834 tcl slt th3 src

SQLITE_TOOBIG might be returned if the size of a string or BLOB exceeds limits imposed by sqlite3_limit(SQLITE_LIMIT_LENGTH) or SQLITE_MAX_LENGTH.

/* IMP: R-00110-20874 */
# EVIDENCE-OF: R-00110-20874 SQLITE_TOOBIG might be returned if the size
# of a string or BLOB exceeds limits imposed by
# sqlite3_limit(SQLITE_LIMIT_LENGTH) or SQLITE_MAX_LENGTH.

R-18773-06579-40569-18123-18199-49078-54792-42080 tcl slt th3 src

SQLITE_RANGE is returned if the parameter index is out of range.

/* IMP: R-18773-06579 */
# EVIDENCE-OF: R-18773-06579 SQLITE_RANGE is returned if the parameter
# index is out of range.

R-50561-21716-49344-62594-61737-43195-59179-37313 tcl slt th3 src

SQLITE_NOMEM is returned if malloc() fails.

/* IMP: R-50561-21716 */
# EVIDENCE-OF: R-50561-21716 SQLITE_NOMEM is returned if malloc() fails.