Implemented getDeclaredType with documentation.

This commit is contained in:
Daniel Schmidt 2020-03-16 15:26:30 +01:00
parent 01cf6f2d2a
commit 98aff92081
2 changed files with 30 additions and 0 deletions

View File

@ -643,6 +643,22 @@ public:
*/
int getColumnIndex(const char* apName) const;
/**
* @brief Return the declared type of the specified result column for a SELECT statement.
*
* This is the type given at creation of the column and not the actual data type.
* SQLite stores data types dynamically for each value and not per column.
*
* @param[in] aIndex Index of the column in the range [0, getColumnCount()).
*
* Throw an exception if the specified index is out of the [0, getColumnCount()) range
* or if the current statement is not a SELECT statement.
*/
const char * getDeclaredType(const int aIndex) const;
////////////////////////////////////////////////////////////////////////////
/// Return the UTF-8 SQL Query.

View File

@ -296,6 +296,20 @@ int Statement::getColumnIndex(const char* apName) const
return (*iIndex).second;
}
const char * Statement::getDeclaredType(const int aIndex) const
{
checkIndex(aIndex);
const char * result = sqlite3_column_decltype(mStmtPtr, aIndex);
if (!result)
{
throw SQLite::Exception("Could not determine declared column type.");
}
else
{
return result;
}
}
int Statement::getBindParameterCount() const noexcept
{
return sqlite3_bind_parameter_count(mStmtPtr);