213{
215 && (
__stmt->field_count > 0)
216 && (Query::__fieldCount == 0)
219 );
220
221 size_t alloc =
sizeof(MYSQL_BIND) *
__stmt->field_count;
226 return false;
227 }
229
230
231 size_t offset = 0;
232 for (
unsigned int i = 0; i <
__stmt->field_count; i++) {
233 MYSQL_FIELD* field =
__stmt->fields + i;
234 offset = __TYPE_ALIGN(offset, field);
235
237 offset, __TYPE_SIZE(field), field.name);
238 offset += __TYPE_SIZE(field);
239 }
240
242
243
244
245 if (offset > 0) {
249 return false;
250 }
251 }
252
255 offset = 0;
256 for (
unsigned int i = 0; i <
__stmt->field_count; i++) {
257 MYSQL_FIELD* field =
__stmt->fields + i;
259
260 offset = __TYPE_ALIGN(offset, field);
261 bind->buffer_length = __TYPE_SIZE(field);
262 bind->buffer_type = field->type;
263 bind->buffer = outBuffer + offset;
264 offset += bind->buffer_length;
265
266 bind->length = &(bind->length_value);
267 bind->is_null = &(bind->is_null_value);
268 bind->error = &(bind->error_value);
269 }
270
275 );
276 return false;
277 }
278
279 Query::__fieldCount =
__stmt->field_count;
280 __fields =
new MyField[Query::__fieldCount];
283 return false;
284 }
285
286 for(unsigned int i = 0; i < Query::__fieldCount; i++) {
287 MYSQL_FIELD* field =
__stmt->fields + i;
289 if (!
__fields[i].init(
this, i, field, bind))
290 return false;
291 }
292
293 return true;
294}