static internal NativeDBType FromDBType(short dbType, bool isLong, bool isFixed) { switch (dbType) { //case EMPTY: //case NULL: case I2: return(D_SmallInt); case I4: return(D_Integer); case R4: return(D_Single); case R8: return(D_Double); case CY: return(D_Currency); case DATE: return(D_Date); case BSTR: return(D_BSTR); case IDISPATCH: return(D_IDispatch); case ERROR: return(D_Error); case BOOL: return(D_Boolean); case VARIANT: return(D_Variant); case IUNKNOWN: return(D_IUnknown); case DECIMAL: return(D_Decimal); case I1: return(D_TinyInt); case UI1: return(D_UnsignedTinyInt); case UI2: return(D_UnsignedSmallInt); case UI4: return(D_UnsignedInt); case I8: return(D_BigInt); case UI8: return(D_UnsignedBigInt); case FILETIME: return(D_Filetime); case GUID: return(D_Guid); case BYTES: return((isLong) ? D_LongVarBinary : (isFixed) ? D_Binary : D_VarBinary); case STR: return((isLong) ? D_LongVarChar : (isFixed) ? D_Char : D_VarChar); case WSTR: return((isLong) ? D_LongVarWChar : (isFixed) ? D_WChar : D_VarWChar); case NUMERIC: return(D_Numeric); //case UDT: case DBDATE: return(D_DBDate); case DBTIME: return(D_DBTime); case DBTIMESTAMP: return(D_DBTimeStamp); case HCHAPTER: return(D_Chapter); case PROPVARIANT: return(D_PropVariant); case VARNUMERIC: return(D_VarNumeric); case XML: return(D_Xml); case UDT: return(D_Udt); //case VECTOR: //case ARRAY: //case BYREF: //case RESERVED: default: if (0 != (NativeDBType.VECTOR & dbType)) { throw ODB.DBBindingGetVector(); } return(D_Variant); } }
internal static NativeDBType FromDBType(short dbType, bool isLong, bool isFixed) { switch (dbType) { case 2: return(D_SmallInt); case 3: return(D_Integer); case 4: return(D_Single); case 5: return(D_Double); case 6: return(D_Currency); case 7: return(D_Date); case 8: return(D_BSTR); case 9: return(D_IDispatch); case 10: return(D_Error); case 11: return(D_Boolean); case 12: return(D_Variant); case 13: return(D_IUnknown); case 14: return(D_Decimal); case 0x10: return(D_TinyInt); case 0x11: return(D_UnsignedTinyInt); case 0x12: return(D_UnsignedSmallInt); case 0x13: return(D_UnsignedInt); case 20: return(D_BigInt); case 0x15: return(D_UnsignedBigInt); case 0x40: return(D_Filetime); case 0x80: if (isLong) { return(D_LongVarBinary); } if (isFixed) { return(D_Binary); } return(D_VarBinary); case 0x81: if (isLong) { return(D_LongVarChar); } if (isFixed) { return(D_Char); } return(D_VarChar); case 130: if (isLong) { return(D_LongVarWChar); } if (isFixed) { return(D_WChar); } return(D_VarWChar); case 0x83: return(D_Numeric); case 0x84: return(D_Udt); case 0x85: return(D_DBDate); case 0x86: return(D_DBTime); case 0x87: return(D_DBTimeStamp); case 0x88: return(D_Chapter); case 0x8a: return(D_PropVariant); case 0x8b: return(D_VarNumeric); case 0x8d: return(D_Xml); case 0x48: return(D_Guid); } if ((0x1000 & dbType) != 0) { throw ODB.DBBindingGetVector(); } return(D_Variant); }