@@ -74,20 +74,20 @@ bool Sqlite::Statement::step() {
74
74
}
75
75
76
76
Sqlite::Statement &Sqlite::Statement::bindBlob (
77
- const std::string & param, const void *data, size_t length) {
77
+ StringView param, const void *data, size_t length) {
78
78
R (sqlite3_bind_blob (statement_, P (param), data, length, SQLITE_TRANSIENT));
79
79
return *this ;
80
80
}
81
81
82
- Sqlite::Statement &Sqlite::Statement::bindInt64 (const std::string & param,
82
+ Sqlite::Statement &Sqlite::Statement::bindInt64 (StringView param,
83
83
int64_t data) {
84
84
R (sqlite3_bind_int64 (statement_, P (param), data));
85
85
return *this ;
86
86
}
87
87
88
- Sqlite::Statement &Sqlite::Statement::bindString (const std::string & param,
89
- const std::string & data) {
90
- R (sqlite3_bind_text (statement_, P (param), data.c_str (), data.size (),
88
+ Sqlite::Statement &Sqlite::Statement::bindString (StringView param,
89
+ StringView data) {
90
+ R (sqlite3_bind_text (statement_, P (param), data.begin (), data.length (),
91
91
SQLITE_TRANSIENT));
92
92
return *this ;
93
93
}
@@ -108,11 +108,13 @@ std::string Sqlite::Statement::columnName(int index) const {
108
108
return sqlite3_column_name (statement_, index );
109
109
}
110
110
111
- int Sqlite::Statement::P (const std::string ¶m) const {
112
- auto index = sqlite3_bind_parameter_index (statement_, param.c_str ());
111
+ int Sqlite::Statement::P (StringView param) const {
112
+ std::string asStringStorage;
113
+ auto index = sqlite3_bind_parameter_index (statement_,
114
+ param.c_str (asStringStorage));
113
115
if (index == 0 )
114
116
throw std::runtime_error (
115
- " Unable to find bound parameter '" + param + " '" );
117
+ " Unable to find bound parameter '" + param. str () + " '" );
116
118
return index ;
117
119
}
118
120
0 commit comments