Fetch input or output parameter list.
| 454 | |
| 455 | // Fetch input or output parameter list. |
| 456 | void StatementMetadata::fetchParameters(UCHAR code, Parameters* parameters) |
| 457 | { |
| 458 | while (!parameters->fetched) |
| 459 | { |
| 460 | unsigned startIndex = 1; |
| 461 | |
| 462 | for (ObjectsArray<Parameters::Item>::iterator i = parameters->items.begin(); |
| 463 | i != parameters->items.end(); |
| 464 | ++i) |
| 465 | { |
| 466 | if (!i->finished) |
| 467 | break; |
| 468 | |
| 469 | ++startIndex; |
| 470 | } |
| 471 | |
| 472 | UCHAR items[5 + sizeof(DESCRIBE_VARS)] = |
| 473 | { |
| 474 | isc_info_sql_sqlda_start, |
| 475 | 2, |
| 476 | UCHAR(startIndex & 0xFF), |
| 477 | UCHAR((startIndex >> 8) & 0xFF), |
| 478 | code |
| 479 | }; |
| 480 | memcpy(items + 5, DESCRIBE_VARS, sizeof(DESCRIBE_VARS)); |
| 481 | |
| 482 | UCHAR buffer[INFO_BUFFER_SIZE]; |
| 483 | memset(buffer, 0, sizeof(buffer)); |
| 484 | getAndParse(sizeof(items), items, sizeof(buffer), buffer); |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | |
| 489 | //-------------------------------------- |