mirror of
https://github.com/cuberite/SQLiteCpp.git
synced 2025-08-05 02:06:02 -04:00
Added binding of a binary blob of data
This commit is contained in:
parent
8fa9d7ac09
commit
6a367c50e2
@ -95,7 +95,7 @@ public:
|
|||||||
* Return either :
|
* Return either :
|
||||||
* - size in bytes (not in characters) of the string returned by getText() without the '\0' terminator
|
* - size in bytes (not in characters) of the string returned by getText() without the '\0' terminator
|
||||||
* - size in bytes of the string representation of the numerical value (integer or double)
|
* - size in bytes of the string representation of the numerical value (integer or double)
|
||||||
* - TODO size in bytes of the binary blob returned by getBlob()
|
* - size in bytes of the binary blob returned by getBlob()
|
||||||
* - 0 for a NULL value
|
* - 0 for a NULL value
|
||||||
*/
|
*/
|
||||||
int getBytes(void) const throw();
|
int getBytes(void) const throw();
|
||||||
|
@ -76,6 +76,13 @@ void Statement::bind(const int aIndex, const char* apValue) // throw(SQLite::Exc
|
|||||||
check(ret);
|
check(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bind a binary blob value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
||||||
|
void Statement::bind(const int aIndex, const void* apValue, const int aSize) // throw(SQLite::Exception)
|
||||||
|
{
|
||||||
|
int ret = sqlite3_bind_blob(mStmtPtr, aIndex, apValue, -1, SQLITE_TRANSIENT);
|
||||||
|
check(ret);
|
||||||
|
}
|
||||||
|
|
||||||
// Bind a NULL value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
// Bind a NULL value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
||||||
void Statement::bind(const int aIndex) // throw(SQLite::Exception)
|
void Statement::bind(const int aIndex) // throw(SQLite::Exception)
|
||||||
{
|
{
|
||||||
@ -124,6 +131,14 @@ void Statement::bind(const char* apName, const char* apValue) // throw(SQLite::E
|
|||||||
check(ret);
|
check(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bind a binary blob value to a parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
||||||
|
void Statement::bind(const char* apName, const void* apValue, const int aSize) // throw(SQLite::Exception)
|
||||||
|
{
|
||||||
|
int index = sqlite3_bind_parameter_index(mStmtPtr, apName);
|
||||||
|
int ret = sqlite3_bind_blob(mStmtPtr, index, apValue, aSize, SQLITE_TRANSIENT);
|
||||||
|
check(ret);
|
||||||
|
}
|
||||||
|
|
||||||
// Bind a NULL value to a parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
// Bind a NULL value to a parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement
|
||||||
void Statement::bind(const char* apName) // throw(SQLite::Exception)
|
void Statement::bind(const char* apName) // throw(SQLite::Exception)
|
||||||
{
|
{
|
||||||
|
@ -61,6 +61,14 @@ public:
|
|||||||
// Can use the parameter index, starting from "1", to the higher NNN value,
|
// Can use the parameter index, starting from "1", to the higher NNN value,
|
||||||
// or the complete parameter name "?NNN", ":VVV", "@VVV" or "$VVV"
|
// or the complete parameter name "?NNN", ":VVV", "@VVV" or "$VVV"
|
||||||
// (prefixed with the corresponding sign "?", ":", "@" or "$")
|
// (prefixed with the corresponding sign "?", ":", "@" or "$")
|
||||||
|
//
|
||||||
|
// Note that for text and blob values, the SQLITE_TRANSIENT flag is used,
|
||||||
|
// which tell the sqlite library to make its own copy of the data before the bind() call returns.
|
||||||
|
// This choice is done to prevent any common misuses, like passing a pointer to a
|
||||||
|
// dynamic allocated and temporary variable (a std::string for instance).
|
||||||
|
// This is under-optimized for static data (a static text define in code)
|
||||||
|
// as well as for dynamic allocated buffer which could be transfer to sqlite
|
||||||
|
// instead of being copied.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bind an int value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* Bind an int value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
@ -75,13 +83,23 @@ public:
|
|||||||
*/
|
*/
|
||||||
void bind(const int aIndex, const double& aValue) ; // throw(SQLite::Exception);
|
void bind(const int aIndex, const double& aValue) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a string value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* @brief Bind a string value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
*/
|
*/
|
||||||
void bind(const int aIndex, const std::string& aValue) ; // throw(SQLite::Exception);
|
void bind(const int aIndex, const std::string& aValue) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a text value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* @brief Bind a text value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
*/
|
*/
|
||||||
void bind(const int aIndex, const char* apValue) ; // throw(SQLite::Exception);
|
void bind(const int aIndex, const char* apValue) ; // throw(SQLite::Exception);
|
||||||
|
/**
|
||||||
|
* @brief Bind a binary blob value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
|
*/
|
||||||
|
void bind(const int aIndex, const void* apValue, const int aSize) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a NULL value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* Bind a NULL value to a parameter "?", "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
*/
|
*/
|
||||||
@ -100,13 +118,23 @@ public:
|
|||||||
*/
|
*/
|
||||||
void bind(const char* apName, const double& aValue) ; // throw(SQLite::Exception);
|
void bind(const char* apName, const double& aValue) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a string value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* @brief Bind a string value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
*/
|
*/
|
||||||
void bind(const char* apName, const std::string& aValue) ; // throw(SQLite::Exception);
|
void bind(const char* apName, const std::string& aValue) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a text value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* @brief Bind a text value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
*/
|
*/
|
||||||
void bind(const char* apName, const char* apValue) ; // throw(SQLite::Exception);
|
void bind(const char* apName, const char* apValue) ; // throw(SQLite::Exception);
|
||||||
|
/**
|
||||||
|
* @brief Bind a binary blob value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
|
*
|
||||||
|
* @note This uses the SQLITE_TRANSIENT flag, making a copy of the data, for SQLite internal use
|
||||||
|
*/
|
||||||
|
void bind(const char* apName, const void* apValue, const int aSize) ; // throw(SQLite::Exception);
|
||||||
/**
|
/**
|
||||||
* Bind a NULL value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
* Bind a NULL value to a named parameter "?NNN", ":VVV", "@VVV" or "$VVV" in the SQL prepared statement (aIndex >= 1)
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user