diff --git a/hdr/sqlite_modern_cpp.h b/hdr/sqlite_modern_cpp.h index 09665d38..95ef4f34 100644 --- a/hdr/sqlite_modern_cpp.h +++ b/hdr/sqlite_modern_cpp.h @@ -112,9 +112,10 @@ namespace sqlite { int hresult; sqlite3_stmt* tmp = nullptr; const char *remaining; - hresult = sqlite3_prepare_v2(_db.get(), sql.data(), sql.length(), &tmp, &remaining); - if(hresult != SQLITE_OK) errors::throw_sqlite_error(hresult, sql, sqlite3_errmsg(_db.get())); - if(!std::all_of(remaining, sql.data() + sql.size(), [](char ch) {return std::isspace(ch);})) + hresult = sqlite3_prepare_v2(_db.get(), sql.data(), static_cast(sql.length()), &tmp, &remaining); + if (hresult != SQLITE_OK) + errors::throw_sqlite_error(hresult, sql, sqlite3_errmsg(_db.get())); + if (!std::all_of(remaining, sql.data() + sql.size(), [](char ch) {return std::isspace(ch); })) throw errors::more_statements("Multiple semicolon separated statements are unsupported", sql); return tmp; } diff --git a/hdr/sqlite_modern_cpp/type_wrapper.h b/hdr/sqlite_modern_cpp/type_wrapper.h index 7b12a36b..681a8bc7 100644 --- a/hdr/sqlite_modern_cpp/type_wrapper.h +++ b/hdr/sqlite_modern_cpp/type_wrapper.h @@ -128,13 +128,13 @@ namespace sqlite { inline void store_result_in_db(sqlite3_context* db, const float& val) { sqlite3_result_double(db, val); } - inline float get_col_from_db(sqlite3_stmt* stmt, int inx, result_type) { - return sqlite3_column_type(stmt, inx) == SQLITE_NULL ? 0 : - sqlite3_column_double(stmt, inx); + inline float get_col_from_db(sqlite3_stmt* stmt, int inx, result_type) + { + return static_cast(sqlite3_column_type(stmt, inx) == SQLITE_NULL ? 0 : sqlite3_column_double(stmt, inx)); } - inline float get_val_from_db(sqlite3_value *value, result_type) { - return sqlite3_value_type(value) == SQLITE_NULL ? 0 : - sqlite3_value_double(value); + inline float get_val_from_db(sqlite3_value *value, result_type) + { + return static_cast(sqlite3_value_type(value) == SQLITE_NULL ? 0 : sqlite3_value_double(value)); } // double @@ -189,7 +189,7 @@ namespace sqlite { template<> struct has_sqlite_type : std::true_type {}; inline int bind_col_in_db(sqlite3_stmt* stmt, int inx, str_ref val) { - return sqlite3_bind_text(stmt, inx, val.data(), val.length(), SQLITE_TRANSIENT); + return sqlite3_bind_text(stmt, inx, val.data(), static_cast(val.length()), SQLITE_TRANSIENT); } // Convert char* to string_view to trigger op<<(..., const str_ref ) @@ -215,13 +215,13 @@ namespace sqlite { } inline void store_result_in_db(sqlite3_context* db, str_ref val) { - sqlite3_result_text(db, val.data(), val.length(), SQLITE_TRANSIENT); + sqlite3_result_text(db, val.data(), static_cast(val.length()), SQLITE_TRANSIENT); } // u16str_ref template<> struct has_sqlite_type : std::true_type {}; inline int bind_col_in_db(sqlite3_stmt* stmt, int inx, u16str_ref val) { - return sqlite3_bind_text16(stmt, inx, val.data(), sizeof(char16_t) * val.length(), SQLITE_TRANSIENT); + return sqlite3_bind_text16(stmt, inx, val.data(), sizeof(char16_t) * static_cast(val.length()), SQLITE_TRANSIENT); } // Convert char* to string_view to trigger op<<(..., const str_ref ) @@ -246,7 +246,7 @@ namespace sqlite { } inline void store_result_in_db(sqlite3_context* db, u16str_ref val) { - sqlite3_result_text16(db, val.data(), sizeof(char16_t) * val.length(), SQLITE_TRANSIENT); + sqlite3_result_text16(db, val.data(), sizeof(char16_t) * static_cast(val.length()), SQLITE_TRANSIENT); } // Other integer types