427{
428 IBConnection* connHandle = conn();
430
431 if (
__stmtType == isc_info_sql_stmt_exec_procedure) {
432
433
434
435 if (isc_dsql_execute2(
436 statusVector,
443 return false;
444 }
445 }
446 else {
447 if (isc_dsql_execute(
448 statusVector,
453
455 return false;
456 }
457 }
458
459 for (size_t i = 0; i < Query::__paramCount; i++) {
461 }
462
463
464
465
466 unsigned char count_type = 0;
468 case isc_info_sql_stmt_update: {
469 count_type = isc_info_req_update_count;
470 break;
471 }
472 case isc_info_sql_stmt_delete: {
473 count_type = isc_info_req_delete_count;
474 break;
475 }
476 case isc_info_sql_stmt_insert: {
477 count_type = isc_info_req_insert_count;
478 break;
479 }
480 case isc_info_sql_stmt_select:
481 case isc_info_sql_stmt_select_for_upd: {
482 Query::__eof = false;
483 break;
484 }
485 case isc_info_sql_stmt_exec_procedure: {
486 Query::__eof = false;
487 for (size_t i = 0; i < Query::__fieldCount; i++) {
489 return false;
490 }
491 break;
492 }
493 }
494
495 if (count_type) {
496 unsigned char count_is = 0;
497 char count_buffer[33];
498 unsigned short length;
499
500 if (isc_dsql_sql_info(
501 statusVector,
503 sizeof(count_info_item),
504 count_info_item,
505 sizeof(count_buffer),
506 count_buffer)) {
507
509 return false;
510 }
511
512 for(char* p = count_buffer + 3; *p != isc_info_end; ) {
513 count_is = *p++;
514 length = (unsigned short)isc_vax_integer(p, 2);
515 p += 2;
516 Query::__affectedRows = isc_vax_integer(p, length);
517 p += length;
518 if (count_is == count_type)
519 break;
520 }
521 }
522
523 return true;
524}
#define __SET_ERROR(_errorCode)
isc_tr_handle * trHandlePtr()
ISC_STATUS * statusVector()
isc_stmt_handle __stmtHandle