CXVariantPerformConvert::Convert
DLL: sqlTsEs.dll
Class: CXVariantPerformConvert<Type1, Type2>
Section: Types
Description: There is a group of classes (probably c++ templates) which take two types and convert from one to another, these are called when the sql CAST is used – some conversions like smallint to int happen without calling these functions. The full list of types is:
CXVariantPerformConvert<108,104>::Convert |
CXVariantPerformConvert<108,48>::Convert |
CXVariantPerformConvert<108,52>::Convert |
CXVariantPerformConvert<122,127>::Convert |
CXVariantPerformConvert<122,48>::Convert |
CXVariantPerformConvert<122,52>::Convert |
CXVariantPerformConvert<122,56>::Convert |
CXVariantPerformConvert<127,104>::Convert |
CXVariantPerformConvert<127,122>::Convert |
CXVariantPerformConvert<127,48>::Convert |
CXVariantPerformConvert<127,52>::Convert |
CXVariantPerformConvert<127,56>::Convert |
CXVariantPerformConvert<127,60>::Convert |
CXVariantPerformConvert<127,62>::Convert |
CXVariantPerformConvert<165,104>::Convert |
CXVariantPerformConvert<165,36>::Convert |
CXVariantPerformConvert<165,48>::Convert |
CXVariantPerformConvert<165,52>::Convert |
CXVariantPerformConvert<167,104>::Convert |
CXVariantPerformConvert<167,127>::Convert |
CXVariantPerformConvert<167,48>::Convert |
CXVariantPerformConvert<167,52>::Convert |
CXVariantPerformConvert<167,56>::Convert |
CXVariantPerformConvert<189,52>::Convert |
CXVariantPerformConvert<189,56>::Convert |
CXVariantPerformConvert<189,60>::Convert |
CXVariantPerformConvert<231,104>::Convert |
CXVariantPerformConvert<231,48>::Convert |
CXVariantPerformConvert<231,52>::Convert |
CXVariantPerformConvert<231,56>::Convert |
CXVariantPerformConvert<231,62>::Convert |
CXVariantPerformConvert<40,58>::Convert |
CXVariantPerformConvert<40,61>::Convert |
CXVariantPerformConvert<48,127>::Convert |
CXVariantPerformConvert<48,62>::Convert |
CXVariantPerformConvert<52,127>::Convert |
CXVariantPerformConvert<52,48>::Convert |
CXVariantPerformConvert<52,62>::Convert |
CXVariantPerformConvert<56,127>::Convert |
CXVariantPerformConvert<56,48>::Convert |
CXVariantPerformConvert<56,52>::Convert |
CXVariantPerformConvert<56,62>::Convert |
CXVariantPerformConvert<58,104>::Convert |
CXVariantPerformConvert<58,127>::Convert |
CXVariantPerformConvert<58,40>::Convert |
CXVariantPerformConvert<58,48>::Convert |
CXVariantPerformConvert<58,52>::Convert |
CXVariantPerformConvert<58,56>::Convert |
CXVariantPerformConvert<58,59>::Convert |
CXVariantPerformConvert<58,62>::Convert |
CXVariantPerformConvert<59,104>::Convert |
CXVariantPerformConvert<59,127>::Convert |
CXVariantPerformConvert<59,48>::Convert |
CXVariantPerformConvert<59,52>::Convert |
CXVariantPerformConvert<59,60>::Convert |
CXVariantPerformConvert<59,62>::Convert |
CXVariantPerformConvert<60,104>::Convert |
CXVariantPerformConvert<60,48>::Convert |
CXVariantPerformConvert<60,52>::Convert |
CXVariantPerformConvert<61,104>::Convert |
CXVariantPerformConvert<61,127>::Convert |
CXVariantPerformConvert<61,40>::Convert |
CXVariantPerformConvert<61,48>::Convert |
CXVariantPerformConvert<61,52>::Convert |
CXVariantPerformConvert<62,104>::Convert |
CXVariantPerformConvert<62,122>::Convert |
CXVariantPerformConvert<62,127>::Convert |
CXVariantPerformConvert<62,48>::Convert |
CXVariantPerformConvert<62,52>::Convert |
CXVariantPerformConvert<62,56>::Convert |
CXVariantPerformConvert<62,59>::Convert |
CXVariantPerformConvert<62,60>::Convert |
CXvariantPerformConvertFromBHToBH::Convert |
CXVariantPerformConvertFromBHToString<165,167,0>::Convert |
CXVariantPerformConvertFromBHToString<165,231,0>::Convert |
CXVariantPerformConvertFromBHToString<167,165,0>::Convert |
CXVariantPerformConvertFromBHToString<231,165,0>::Convert |
CXVariantPerformConvertFromBHToString<231,231,1>::Convert |
CXVariantPerformConvertFromUdtToBinary |
CXVariantPerformConvertToByt<127>::Convert |
CXVariantPerformConvertToByt<165>::Convert |
CXVariantPerformConvertToByt<34>::Convert |
CXVariantPerformConvertToByt<48>::Convert |
CXVariantPerformConvertToByt<52>::Convert |
CXVariantPerformConvertToByt<62>::Convert |
CXVariantPerformConvertToDate<127,58>::Convert |
CXVariantPerformConvertToDate<127,61>::Convert |
CXVariantPerformConvertToDate<165,58>::Convert |
CXVariantPerformConvertToDate<167,58>::Convert |
CXVariantPerformConvertToDate<167,61>::Convert |
CXVariantPerformConvertToDate<189,58>::Convert |
CXVariantPerformConvertToDate<189,61>::Convert |
CXVariantPerformConvertToDate<231,61>::Convert |
CXVariantPerformConvertToDate<52,58>::Convert |
CXVariantPerformConvertToDate<56,58>::Convert |
CXVariantPerformConvertToDate<56,61>::Convert |
CXVariantPerformConvertToDate<59,58>::Convert |
CXVariantPerformConvertToDate<62,58>::Convert |
CXVariantPerformConvertToDate<62,61>::Convert |
CXVariantPerformConvertToNm<122>::Convert |
CXVariantPerformConvertToNm<127>::Convert |
CXVariantPerformConvertToNm<231>::Convert |
CXVariantPerformConvertToNm<59>::Convert |
CXVariantPerformConvertToNm<62>::Convert |
CXVariantPerformConvertToSsVariant<104>::Convert |
CXVariantPerformConvertToSsVariant<106>::Convert |
CXVariantPerformConvertToSsVariant<108>::Convert |
CXVariantPerformConvertToSsVariant<122>::Convert |
CXVariantPerformConvertToSsVariant<127>::Convert |
CXVariantPerformConvertToSsVariant<165>::Convert |
CXVariantPerformConvertToSsVariant<167>::Convert |
CXVariantPerformConvertToSsVariant<231>::Convert |
CXVariantPerformConvertToSsVariant<36>::Convert |
CXVariantPerformConvertToSsVariant<40>::Convert |
CXVariantPerformConvertToSsVariant<48>::Convert |
CXVariantPerformConvertToSsVariant<52>::Convert |
CXVariantPerformConvertToSsVariant<56>::Convert |
CXVariantPerformConvertToSsVariant<58>::Convert |
CXVariantPerformConvertToSsVariant<59>::Convert |
CXVariantPerformConvertToSsVariant<60>::Convert |
CXVariantPerformConvertToSsVariant<61>::Convert |
CXVariantPerformConvertToSsVariant<62>::Convert |
CXVariantPerformConvertToStr<127>::Convert |
CXVariantPerformConvertToStr<165>::Convert |
CXVariantPerformConvertToStr<167>::Convert |
CXVariantPerformConvertToStr<34>::Convert |
CXVariantPerformConvertToStr<35>::Convert |
CXVariantPerformConvertToStr<40>::Convert |
CXVariantPerformConvertToStr<58>::Convert |
CXVariantPerformConvertToStr<60>::Convert |
CXVariantPerformConvertToStr<61>::Convert |
CXVariantPerformConvertToStr<62>::Convert |
CXVariantPerformConvertToWstr<127,0>::Convert |
CXVariantPerformConvertToWstr<165,0>::Convert |
CXVariantPerformConvertToWstr<231,0>::Convert |
CXVariantPerformConvertToWstr<231,1>::Convert |
CXVariantPerformConvertToWstr<34,0>::Convert |
CXVariantPerformConvertToWstr<40,0>::Convert |
CXVariantPerformConvertToWstr<58,0>::Convert |
CXVariantPerformConvertToWstr<61,0>::Convert |
CXVariantPerformConvertToWstr<62,0>::Convert |
CXVariantPerformConvertToWstr<99,0>::Convert |
CXVariantPerformConvertVarTime<40,42>::Convert |
CXVariantPerformConvertVarTime<40,43>::Convert |
CXVariantPerformConvertVarTime<41,41>::Convert |
CXVariantPerformConvertVarTime<41,42>::Convert |
CXVariantPerformConvertVarTime<41,43>::Convert |
CXVariantPerformConvertVarTime<41,58>::Convert |
CXVariantPerformConvertVarTime<41,61>::Convert |
CXVariantPerformConvertVarTime<42,40>::Convert |
CXVariantPerformConvertVarTime<42,41>::Convert |
CXVariantPerformConvertVarTime<42,42>::Convert |
CXVariantPerformConvertVarTime<42,43>::Convert |
CXVariantPerformConvertVarTime<42,58>::Convert |
CXVariantPerformConvertVarTime<42,61>::Convert |
CXVariantPerformConvertVarTime<43,40>::Convert |
CXVariantPerformConvertVarTime<43,41>::Convert |
CXVariantPerformConvertVarTime<43,42>::Convert |
CXVariantPerformConvertVarTime<43,43>::Convert |
CXVariantPerformConvertVarTime<43,58>::Convert |
CXVariantPerformConvertVarTime<43,61>::Convert |
CXVariantPerformConvertVarTime<58,41>::Convert |
CXVariantPerformConvertVarTime<58,42>::Convert |
CXVariantPerformConvertVarTime<58,43>::Convert |
CXVariantPerformConvertVarTime<61,41>::Convert |
CXVariantPerformConvertVarTime<61,42>::Convert |
CXVariantPerformConvertVarTime<61,43>::Convert |
CXVariantPerformConvertWithFullTi<40,62>::Convert |
CXVariantPerformConvertWithFullTi<41,62>::Convert |
CXVariantPerformConvertWithFullTi<42,62>::Convert |
CXVariantPerformConvertWithFullTi<43,62>::Convert |
CXVariantPerformConvertWithFullTi<62,40>::Convert |
CXVariantPerformConvertWithFullTi<62,41>::Convert |
CXVariantPerformConvertWithFullTi<62,42>::Convert |
CXVariantPerformConvertWithFullTi<62,43>::Convert |
I don’t know what he type numbers match up to, will try to figure it out, it should be fairly simple by issuing a query like SELECT CAST(@int as bigint) and seeing what function it hits but that is slow and painful as there are loads of them!
Update:
Some of the types:
56 int
127 bigint
62 float
Update 2:
The types match up to the types in the [ms-tds] spec so:
NULLTYPE | 0x1F | Null |
INT1TYPE | 0x30 | TinyInt |
BITTYPE | 0x32 | Bit |
INT2TYPE | 0x34 | SmallInt |
INT4TYPE | 0x38 | Int |
DATETIM4TYPE | 0x3A | SmallDateTime |
FLT4TYPE | 0x3B | Real |
MONEYTYPE | 0x3C | Money |
DATETIMETYPE | 0x3D | DateTime |
FLT8TYPE | 0x3E | Float |
MONEY4TYPE | 0x7A | SmallMoney |
INT8TYPE | 0x7F | BigInt |
GUIDTYPE | 0x24 | UniqueIdentifier |
INTNTYPE | 0x26 | (see below) |
DECIMALTYPE | 0x37 | Decimal (legacy support) |
NUMERICTYPE | 0x3F | Numeric (legacy support) |
BITNTYPE | 0x68 | (see below) |
DECIMALNTYPE | 0x6A | Decimal |
NUMERICNTYPE | 0x6C | Numeric |
FLTNTYPE | 0x6D | (see below) |
MONEYNTYPE | 0x6E | (see below) |
DATETIMNTYPE | 0x6F | (see below) |
DATENTYPE | 0x28 | (introduced in TDS 7.3) |
TIMENTYPE | 0x29 | (introduced in TDS 7.3) |
DATETIME2NTYPE | 0x2A | (introduced in TDS 7.3) |
DATETIMEOFFSETNTYPE | 0x2B | (introduced in TDS 7.3) |
CHARTYPE | 0x2F | Char (legacy support) |
VARCHARTYPE | 0x27 | VarChar (legacy support) |
BINARYTYPE | 0x2D | Binary (legacy support) |
VARBINARYTYPE | 0x25 | VarBinary (legacy support) |
BIGVARBINTYPE | 0xA5 | VarBinary |
BIGVARCHRTYPE | 0xA7 | VarChar |
BIGBINARYTYPE | 0xAD | Binary |
BIGCHARTYPE | 0xAF | Char |
NVARCHARTYPE | 0xE7 | NVarChar |
NCHARTYPE | 0xEF | NChar |
XMLTYPE | 0xF1 | XML (introduced in TDS 7.2) |
UDTTYPE | 0xF0 | CLR-UDT (introduced in TDS 7.2) |
TEXTTYPE | 0x23 | Text |
IMAGETYPE | 0x22 | Image |
NTEXTTYPE | 0x63 | NText |
SSVARIANTTYPE | 0x62 | Sql_Variant (introduced in TDS 7.2) |
To help confirm this list, I used the “SQL Server Data Type Conversion Chart” from http://www.microsoft.com/en-us/download/details.aspx?id=35834 and they do indeed match.