public OdbcTypeMap(DbType dbType, OdbcType odbcType, SQL_C_TYPE nativeType, SQL_TYPE sqlType) { DbType = dbType; OdbcType = odbcType; SqlType = sqlType; NativeType = nativeType; }
internal void UpdateTypes(SQL_TYPE sqlType) { SqlType = sqlType; OdbcTypeMap map = OdbcTypeConverter.GetTypeMap(SqlType); OdbcType = map.OdbcType; SqlCType = map.NativeType; }
internal OdbcColumn(string Name, SQL_TYPE type) { this.ColumnName = Name; AllowDBNull = false; MaxLength = 0; Digits = 0; Value = null; UpdateTypes(type); }
internal OdbcColumn(string Name, SQL_TYPE type) { this.ColumnName=Name; AllowDBNull=false; MaxLength=0; Digits=0; Value=null; UpdateTypes (type); }
internal static extern OdbcReturn SQLBindParameter( IntPtr StatementHandle, ushort ParamNum, short InputOutputType, SQL_C_TYPE ValueType, SQL_TYPE ParamType, uint ColSize, short DecimalDigits, IntPtr ParamValue, int BufLen, IntPtr StrLen);
internal static extern OdbcReturn SQLBindParameter ( IntPtr StatementHandle, ushort ParamNum, short InputOutputType, SQL_C_TYPE ValueType, SQL_TYPE ParamType, uint ColSize, short DecimalDigits, IntPtr ParamValue, int BufLen, IntPtr StrLen);
public static OdbcTypeMap GetTypeMap(SQL_TYPE sqlType) { switch (sqlType) { case SQL_TYPE.BINARY: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Binary]); case SQL_TYPE.BIT: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Bit]); case SQL_TYPE.CHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Char]); case SQL_TYPE.DATE: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Date]); case SQL_TYPE.DECIMAL: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Decimal]); case SQL_TYPE.DOUBLE: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Double]); case SQL_TYPE.GUID: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.UniqueIdentifier]); case SQL_TYPE.INTEGER: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Int]); case SQL_TYPE.INTERVAL_DAY: case SQL_TYPE.INTERVAL_DAY_TO_HOUR: case SQL_TYPE.INTERVAL_DAY_TO_MINUTE: case SQL_TYPE.INTERVAL_DAY_TO_SECOND: case SQL_TYPE.INTERVAL_HOUR: case SQL_TYPE.INTERVAL_HOUR_TO_MINUTE: case SQL_TYPE.INTERVAL_HOUR_TO_SECOND: case SQL_TYPE.INTERVAL_MINUTE: case SQL_TYPE.INTERVAL_MINUTE_TO_SECOND: case SQL_TYPE.INTERVAL_MONTH: case SQL_TYPE.INTERVAL_SECOND: case SQL_TYPE.INTERVAL_YEAR: case SQL_TYPE.INTERVAL_YEAR_TO_MONTH: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.DateTime]); case SQL_TYPE.LONGVARBINARY: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Image]); case SQL_TYPE.LONGVARCHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Text]); case SQL_TYPE.NUMERIC: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Numeric]); case SQL_TYPE.REAL: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Real]); case SQL_TYPE.SMALLINT: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.SmallInt]); case SQL_TYPE.TYPE_TIME: case SQL_TYPE.TIME: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.Time]); case SQL_TYPE.TIMESTAMP: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.DateTime]); case SQL_TYPE.TINYINT: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.TinyInt]); case SQL_TYPE.TYPE_DATE: case SQL_TYPE.TYPE_TIMESTAMP: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.DateTime]); case SQL_TYPE.VARBINARY: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.VarBinary]); case SQL_TYPE.VARCHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.VarChar]); case SQL_TYPE.WCHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.NChar]); case SQL_TYPE.WLONGVARCHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.NText]); case SQL_TYPE.WVARCHAR: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.NVarChar]); case SQL_TYPE.UNASSIGNED: return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.VarChar]); } return((OdbcTypeMap)OdbcTypeMap.Maps [OdbcType.VarChar]); }
public TypeMap (OdbcType odbcType, SQL_C_TYPE sqlCType, SQL_TYPE sqlType) { OdbcType = odbcType; SqlType = sqlType; SqlCType = sqlCType; BitMask = DefaultForOdbcType | DefaultForSQLCType | DefaultForSQLType ; }
public static TypeMap GetTypeMap (SQL_TYPE sqlType) { TypeMap map; try { map = OdbcTypeMap [sqlType]; return map; } catch (ArgumentException) { } // If not in default translation map = new TypeMap (); map.SqlType = sqlType; switch (sqlType) { case SQL_TYPE.DATE: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.TYPE_DATE; return map; case SQL_TYPE.DECIMAL: map.OdbcType = OdbcType.Decimal; map.SqlCType = SQL_C_TYPE.CHAR; return map; case SQL_TYPE.INTERVAL_DAY: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_DAY; return map; case SQL_TYPE.INTERVAL_DAY_TO_HOUR: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_DAY_TO_HOUR; return map; case SQL_TYPE.INTERVAL_DAY_TO_MINUTE: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_DAY_TO_MINUTE; return map; case SQL_TYPE.INTERVAL_DAY_TO_SECOND: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_DAY_TO_SECOND; return map; case SQL_TYPE.INTERVAL_HOUR: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_HOUR; return map; case SQL_TYPE.INTERVAL_HOUR_TO_MINUTE: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_HOUR_TO_MINUTE; return map; case SQL_TYPE.INTERVAL_HOUR_TO_SECOND: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_HOUR_TO_SECOND; return map; case SQL_TYPE.INTERVAL_MINUTE: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_MINUTE; return map; case SQL_TYPE.INTERVAL_MINUTE_TO_SECOND: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_MINUTE_TO_SECOND; return map; case SQL_TYPE.INTERVAL_MONTH: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_MONTH; return map; case SQL_TYPE.INTERVAL_SECOND: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_SECOND; return map; case SQL_TYPE.INTERVAL_YEAR: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_YEAR; return map; case SQL_TYPE.INTERVAL_YEAR_TO_MONTH: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.INTERVAL_YEAR_TO_MONTH; return map; case SQL_TYPE.LONGVARBINARY: map.OdbcType = OdbcType.Binary; map.SqlCType = SQL_C_TYPE.BINARY; return map; case SQL_TYPE.TIME: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.TIME; return map; case SQL_TYPE.TYPE_TIMESTAMP: map.OdbcType = OdbcType.DateTime; map.SqlCType = SQL_C_TYPE.TIMESTAMP; return map; case SQL_TYPE.VARCHAR: map.OdbcType = OdbcType.VarChar; map.SqlCType = SQL_C_TYPE.CHAR; return map; default: map.OdbcType = OdbcType.NVarChar; map.SqlCType = SQL_C_TYPE.WCHAR; return map; } }
public static OdbcType ConvertToOdbcType (SQL_TYPE sqlType) { // Unmapped SQL Types // //#define SQL_FLOAT 6 // could map to SQL_DOUBLE? //#define SQL_INTERVAL 10 // could map to SmallDateTime? return GetTypeMap (sqlType).OdbcType; }
public int IndexOf (SQL_TYPE sqlType) { for (int i=0; i < List.Count; i++) { TypeMap map = (TypeMap) List [i]; if (map.SqlType == sqlType && (map.BitMask & TypeMap.DefaultForSQLType) > 0 ) return i; } return -1; }
public TypeMap this [SQL_TYPE sqlType] { get { foreach (TypeMap map in List){ if (map.SqlType == sqlType && (map.BitMask & TypeMap.DefaultForSQLType) > 0 ) return map; } throw new ArgumentException (String.Format ("Type mapping for odbc type {0} is not found", sqlType.ToString () ) ); } set { int i = IndexOf (sqlType); if (i == -1) Add (value); List [i] = value; } }
public TypeMap (OdbcType odbcType, SQL_C_TYPE sqlCType, SQL_TYPE sqlType, short defaultFlags) : this (odbcType, sqlCType, sqlType) { BitMask = defaultFlags; }
internal void UpdateTypes (SQL_TYPE sqlType) { SqlType = sqlType; OdbcTypeConverter.TypeMap map = OdbcTypeConverter.GetTypeMap (SqlType); OdbcType = map.OdbcType; SqlCType = map.SqlCType; }
public static OdbcTypeMap GetTypeMap (SQL_TYPE sqlType) { switch (sqlType) { case SQL_TYPE.BINARY: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Binary]; case SQL_TYPE.BIT: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Bit]; case SQL_TYPE.CHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Char]; case SQL_TYPE.DATE: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Date]; case SQL_TYPE.DECIMAL: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Decimal]; case SQL_TYPE.DOUBLE: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Double]; case SQL_TYPE.GUID: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.UniqueIdentifier]; case SQL_TYPE.INTEGER: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Int]; case SQL_TYPE.INTERVAL_DAY: case SQL_TYPE.INTERVAL_DAY_TO_HOUR: case SQL_TYPE.INTERVAL_DAY_TO_MINUTE: case SQL_TYPE.INTERVAL_DAY_TO_SECOND: case SQL_TYPE.INTERVAL_HOUR: case SQL_TYPE.INTERVAL_HOUR_TO_MINUTE: case SQL_TYPE.INTERVAL_HOUR_TO_SECOND: case SQL_TYPE.INTERVAL_MINUTE: case SQL_TYPE.INTERVAL_MINUTE_TO_SECOND: case SQL_TYPE.INTERVAL_MONTH: case SQL_TYPE.INTERVAL_SECOND: case SQL_TYPE.INTERVAL_YEAR: case SQL_TYPE.INTERVAL_YEAR_TO_MONTH: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.DateTime]; case SQL_TYPE.LONGVARBINARY: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Image]; case SQL_TYPE.LONGVARCHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Text]; case SQL_TYPE.NUMERIC: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Numeric]; case SQL_TYPE.REAL: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Real]; case SQL_TYPE.SMALLINT: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.SmallInt]; case SQL_TYPE.TYPE_TIME: case SQL_TYPE.TIME: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.Time]; case SQL_TYPE.TIMESTAMP: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.DateTime]; case SQL_TYPE.TINYINT: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.TinyInt]; case SQL_TYPE.TYPE_DATE: case SQL_TYPE.TYPE_TIMESTAMP: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.DateTime]; case SQL_TYPE.VARBINARY: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.VarBinary]; case SQL_TYPE.VARCHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.VarChar]; case SQL_TYPE.WCHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.NChar]; case SQL_TYPE.WLONGVARCHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.NText]; case SQL_TYPE.WVARCHAR: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.NVarChar]; case SQL_TYPE.UNASSIGNED: return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.VarChar]; } return (OdbcTypeMap) OdbcTypeMap.Maps [OdbcType.VarChar]; }
public OdbcTypeMap (DbType dbType, OdbcType odbcType, SQL_C_TYPE nativeType, SQL_TYPE sqlType) { DbType = dbType; OdbcType = odbcType; SqlType = sqlType; NativeType = nativeType; }