0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-12-26 07:53:21 +08:00

Support binding time_of_day parameters with SQLite3

This commit is contained in:
vaijns 2024-12-07 12:42:39 +01:00 committed by Roland Bock
parent 542f091f2f
commit d0cdaae972

View File

@ -246,6 +246,27 @@ namespace sqlpp
result = sqlite3_bind_null(_handle->sqlite_statement, static_cast<int>(index + 1)); result = sqlite3_bind_null(_handle->sqlite_statement, static_cast<int>(index + 1));
detail::check_bind_result(result, "blob"); detail::check_bind_result(result, "blob");
} }
void _bind_time_of_day_parameter(size_t index, const ::std::chrono::microseconds* value, bool is_null)
{
if (_handle->debug)
std::cerr << "Sqlite3 debug: binding time_of_day parameter "
<< " at index: " << index << ", being " << (is_null ? "" : "not ") << "null" << std::endl;
int result;
if (not is_null)
{
const auto time = ::date::make_time(::sqlpp::chrono::floor<::std::chrono::microseconds>(*value));
std::ostringstream os; // gcc-4.9 does not support auto os = std::ostringstream{};
os << time;
const auto text = os.str();
result = sqlite3_bind_text(_handle->sqlite_statement, static_cast<int>(index + 1), text.data(),
static_cast<int>(text.size()), SQLITE_TRANSIENT);
}
else
result = sqlite3_bind_null(_handle->sqlite_statement, static_cast<int>(index + 1));
detail::check_bind_result(result, "date");
}
}; };
} // namespace sqlite3 } // namespace sqlite3
} // namespace sqlpp } // namespace sqlpp