| 695 | //------------------------------------------------------------------------------ |
| 696 | |
| 697 | int vtkODBCQuery::GetFieldType(int column) |
| 698 | { |
| 699 | if (!this->Active) |
| 700 | { |
| 701 | vtkErrorMacro(<< "GetFieldType(): Query is not active!"); |
| 702 | return VTK_VOID; |
| 703 | } |
| 704 | else if (column < 0 || column >= this->GetNumberOfFields()) |
| 705 | { |
| 706 | vtkErrorMacro(<< "GetFieldType(): Illegal field index " << column); |
| 707 | return VTK_VOID; |
| 708 | } |
| 709 | else |
| 710 | { |
| 711 | |
| 712 | switch (this->Internals->ColumnTypes[column]) |
| 713 | { |
| 714 | case SQL_CHAR: |
| 715 | case SQL_VARCHAR: |
| 716 | case SQL_LONGVARCHAR: |
| 717 | case SQL_WCHAR: |
| 718 | case SQL_WVARCHAR: |
| 719 | case SQL_WLONGVARCHAR: |
| 720 | return VTK_STRING; |
| 721 | |
| 722 | case SQL_INTEGER: |
| 723 | case SQL_NUMERIC: |
| 724 | if (this->Internals->ColumnIsSigned->GetValue(column)) |
| 725 | { |
| 726 | return VTK_INT; |
| 727 | } |
| 728 | else |
| 729 | { |
| 730 | return VTK_UNSIGNED_INT; |
| 731 | } |
| 732 | |
| 733 | case SQL_TINYINT: |
| 734 | if (this->Internals->ColumnIsSigned->GetValue(column)) |
| 735 | { |
| 736 | return VTK_SIGNED_CHAR; |
| 737 | } |
| 738 | else |
| 739 | { |
| 740 | return VTK_UNSIGNED_CHAR; |
| 741 | } |
| 742 | |
| 743 | case SQL_SMALLINT: |
| 744 | if (this->Internals->ColumnIsSigned->GetValue(column)) |
| 745 | { |
| 746 | return VTK_SHORT; |
| 747 | } |
| 748 | else |
| 749 | { |
| 750 | return VTK_UNSIGNED_SHORT; |
| 751 | } |
| 752 | |
| 753 | case SQL_BIT: |
| 754 | return VTK_BIT; |