126
123
template< class T >
128
125
unsigned int index,
128
// bind as text (applying the type affinity of the underlying column)
131
129
std::string string_value = boost::lexical_cast< std::string >( value );
132
130
return sqlite3_bind_text( _handle, index, string_value.c_str(),
133
131
string_value.length(), SQLITE_TRANSIENT );
137
* Bind a string value to the SQL statement via it's index where the value
138
* of that string will not change for the duration of the statement. This
139
* is more optimal because sqlite will not have to take it's own copy of the
142
* @param index the index of the parameter to bind to
143
* @param value the invariant string value
144
* @param value_length the length of the string including zero-terminator
145
* @returns an sqlite error code
146
* @see sqlite3_bind_text()
151
unsigned int value_length );
154
* Bind a string value to the SQL statement via it's index where the value
155
* of that string will not change for the duration of the statement. This
156
* is more optimal because sqlite will not have to take it's own copy of the
159
* @param index the index of the parameter to bind to
160
* @param value the invariant string value
161
* @returns an sqlite error code
162
* @see sqlite3_bind_text()
169
* Bind a string value to the SQL statement via it's index where the value
170
* of that string will not change for the duration of the statement. This
171
* is more optimal because sqlite will not have to take it's own copy of the
174
* @param index the index of the parameter to bind to
175
* @param value the invariant string value
176
* @returns an sqlite error code
177
* @see sqlite3_bind_text()
181
const std::string &value );
184
* Bind a NULL value to the SQL statement via it's index.
186
* @param index the index of the parameter to bind to
187
* @returns an sqlite error code
188
* @see sqlite3_bind_null()
191
unsigned int index );
194
* Bind a value to the SQL statement via a named parameter. This template
195
* will take a variety of data types and bind them as text. This is how
196
* sqlite internally stores the data anyway, so always binding as text just
197
* means we do the conversion instead of sqlite and is no less efficient.
135
* Bind a value to the SQL statement via a named parameter.
199
137
* @param name the named parameter to bind to
200
138
* @param value the value to bind
204
142
template< class T >
206
144
const std::string &name,
209
147
return bind( bind_parameter_index( name ), value );
213
* Bind a string value to the SQL statement via a named parameter where the
214
* string value will not change for the duration of the statement. This
215
* prevents sqlite from taking its own copy of the string.
217
* @param name the named parameter to bind to
218
* @param value the invariant string value
219
* @param value_length the length of the string including zero-terminator
220
* @returns an sqlite error code
221
* @see sqlite3_bind_text()
224
const std::string &name,
226
unsigned int value_length );
229
* Bind a string value to the SQL statement via a named parameter where the
230
* string value will not change for the duration of the statement. This
231
* prevents a copy of the string being taken.
233
* @param name the named parameter to bind to
234
* @param value the invariant string value
235
* @returns an sqlite error code
236
* @see sqlite3_bind_text()
239
const std::string &name,
243
* Bind a string value to the SQL statement via a named parameter where the
244
* string value will not change for the duration of the statement. This
245
* prevents a copy of the string being taken.
247
* @param name the named parameter to bind to
248
* @param value the invariant string value
249
* @returns an sqlite error code
250
* @see sqlite3_bind_text()
253
const std::string &name,
254
const std::string &value );
257
* Bind a NULL value to the SQL statement via a named parameter.
259
* @param name the named parameter to bind to
260
* @returns an sqlite error code
261
* @see sqlite3_bind_null()
264
const std::string &name );
267
151
* Stream operator is used to bind values to parameters automatically, in
268
152
* ascending order. In addition, the null and set_index() auto-binding
269
153
* manipulators can be used.
168
* Bind a string value to the SQL statement via it's index where the value
169
* of that string will not change for the duration of the statement. This
170
* is more optimal because sqlite will not have to take it's own copy of the
173
* @param index the index of the parameter to bind to
174
* @param value the invariant string value
175
* @param value_length the length of the string including zero-terminator
176
* @returns an sqlite error code
177
* @see sqlite3_bind_text()
182
unsigned int value_length );
185
* Bind a string value to the SQL statement via it's index where the value
186
* of that string will not change for the duration of the statement. This
187
* is more optimal because sqlite will not have to take it's own copy of the
190
* @param index the index of the parameter to bind to
191
* @param value the invariant string value
192
* @returns an sqlite error code
193
* @see sqlite3_bind_text()
200
* Bind a string value to the SQL statement via it's index where the value
201
* of that string will not change for the duration of the statement. This
202
* is more optimal because sqlite will not have to take it's own copy of the
205
* @param index the index of the parameter to bind to
206
* @param value the invariant string value
207
* @returns an sqlite error code
208
* @see sqlite3_bind_text()
212
const std::string &value );
215
* Bind a string value to the SQL statement via a named parameter where the
216
* string value will not change for the duration of the statement. This
217
* prevents sqlite from taking its own copy of the string.
219
* @param name the named parameter to bind to
220
* @param value the invariant string value
221
* @param value_length the length of the string including zero-terminator
222
* @returns an sqlite error code
223
* @see sqlite3_bind_text()
226
const std::string &name,
228
unsigned int value_length );
231
* Bind a string value to the SQL statement via a named parameter where the
232
* string value will not change for the duration of the statement. This
233
* prevents a copy of the string being taken.
235
* @param name the named parameter to bind to
236
* @param value the invariant string value
237
* @returns an sqlite error code
238
* @see sqlite3_bind_text()
241
const std::string &name,
245
* Bind a string value to the SQL statement via a named parameter where the
246
* string value will not change for the duration of the statement. This
247
* prevents a copy of the string being taken.
249
* @param name the named parameter to bind to
250
* @param value the invariant string value
251
* @returns an sqlite error code
252
* @see sqlite3_bind_text()
255
const std::string &name,
256
const std::string &value );
259
* Bind a NULL value to the SQL statement via it's index.
261
* @param index the index of the parameter to bind to
262
* @returns an sqlite error code
263
* @see sqlite3_bind_null()
266
unsigned int index );
269
* Bind a NULL value to the SQL statement via a named parameter.
271
* @param name the named parameter to bind to
272
* @returns an sqlite error code
273
* @see sqlite3_bind_null()
276
const std::string &name );
279
* Bind a string value as a blob to the SQL statement via its index.
281
* @param name the named parameter to bind to
282
* @param value the blob data value
283
* @param value_length the length of the blob data
284
* @returns an sqlite error code
285
* @see sqlite3_bind_blob()
290
unsigned int value_length );
293
* Bind a string value as a blob to the SQL statement via its index.
295
* @param name the named parameter to bind to
296
* @param value the blob data value
297
* @returns an sqlite error code
298
* @see sqlite3_bind_blob()
302
const std::string &value );
305
* Bind a string value as a blob to the SQL statement via a named parameter.
307
* @param name the named parameter to bind to
308
* @param value the blob data value
309
* @param value_length the length of the blob data
310
* @returns an sqlite error code
311
* @see sqlite3_bind_blob()
314
const std::string &name,
316
unsigned int value_length );
319
* Bind a string value as a blob to the SQL statement via a named parameter.
321
* @param name the named parameter to bind to
322
* @param value the blob data value
323
* @returns an sqlite error code
324
* @see sqlite3_bind_blob()
327
const std::string &name,
328
const std::string &value );
283
330
//______________________________________________________________________________
284
331
// implementation