------------------------------------------------------------------------------
| 676 | |
| 677 | //------------------------------------------------------------------------------ |
| 678 | int vtkSQLDatabaseSchema::AddTableMultipleArguments(const char* tblName, ...) |
| 679 | { |
| 680 | int tblHandle = this->AddTable(tblName); |
| 681 | int token; |
| 682 | int dtyp; |
| 683 | int size; |
| 684 | int curIndexHandle; |
| 685 | const char* name; |
| 686 | const char* attr; |
| 687 | const char* bcke; |
| 688 | |
| 689 | va_list args; |
| 690 | va_start(args, tblName); |
| 691 | while ((token = va_arg(args, int)) != END_TABLE_TOKEN) |
| 692 | { |
| 693 | switch (token) |
| 694 | { |
| 695 | case COLUMN_TOKEN: |
| 696 | dtyp = va_arg(args, int); |
| 697 | name = va_arg(args, const char*); |
| 698 | size = va_arg(args, int); |
| 699 | attr = va_arg(args, const char*); |
| 700 | this->AddColumnToTable(tblHandle, dtyp, name, size, attr); |
| 701 | break; |
| 702 | case INDEX_TOKEN: |
| 703 | dtyp = va_arg(args, int); |
| 704 | name = va_arg(args, const char*); |
| 705 | curIndexHandle = this->AddIndexToTable(tblHandle, dtyp, name); |
| 706 | while ((token = va_arg(args, int)) != END_INDEX_TOKEN) |
| 707 | { |
| 708 | name = va_arg(args, const char*); |
| 709 | dtyp = this->GetColumnHandleFromName(tblName, name); |
| 710 | this->AddColumnToIndex(tblHandle, curIndexHandle, dtyp); |
| 711 | } |
| 712 | break; |
| 713 | case TRIGGER_TOKEN: |
| 714 | dtyp = va_arg(args, int); |
| 715 | name = va_arg(args, const char*); |
| 716 | attr = va_arg(args, const char*); |
| 717 | bcke = va_arg(args, const char*); |
| 718 | this->AddTriggerToTable(tblHandle, dtyp, name, attr, bcke); |
| 719 | break; |
| 720 | case OPTION_TOKEN: |
| 721 | attr = va_arg(args, const char*); |
| 722 | bcke = va_arg(args, const char*); |
| 723 | this->AddOptionToTable(tblHandle, attr, bcke); |
| 724 | break; |
| 725 | default: |
| 726 | { |
| 727 | vtkErrorMacro("Bad token " << token << " passed to AddTable"); |
| 728 | va_end(args); |
| 729 | return -1; |
| 730 | } |
| 731 | } |
| 732 | } |
| 733 | va_end(args); |
| 734 | return tblHandle; |
| 735 | } |
no test coverage detected