223{
229 && (
__stmt->field_count > 0)
230 );
231
232 Query::__fieldCount =
__stmt->field_count;
233 size_t alloc = sizeof(MYSQL_BIND) * Query::__fieldCount;
237 return false;
238 }
240
241
242 size_t offset = 0;
243 for (size_t i = 0; i < Query::__fieldCount; i++) {
244 MYSQL_FIELD& field =
__stmt->fields[i];
245 offset = __TYPE_ALIGN(offset, field);
247 offset, __TYPE_SIZE(field), field.name);
248 offset += __TYPE_SIZE(field);
249 }
250
252
253
254
255 if (offset > 0) {
260 return false;
261 }
262 }
263
264 offset = 0;
265 for (size_t i = 0; i < Query::__fieldCount; i++) {
266 MYSQL_FIELD& field =
__stmt->fields[i];
268
269 offset = __TYPE_ALIGN(offset, field);
270 bind.buffer_length = __TYPE_SIZE(field);
271 bind.buffer_type = field.type;
273 offset += bind.buffer_length;
274
275 bind.length = &bind.length_value;
276 bind.is_null = &bind.is_null_value;
277 bind.error = &bind.error_value;
278 }
279
283 mysql_stmt_error(
__stmt)));
284 return false;
285 }
286
287 __fields =
new MyField[Query::__fieldCount];
290 return false;
291 }
292
293 for(unsigned int i = 0; i < Query::__fieldCount; i++) {
294 MYSQL_FIELD* field =
__stmt->fields + i;
296 if (!
__fields[i].init(
this, i, field, bind))
297 return false;
298 }
299
300 return true;
301}