Exemple #1
0
 public OdbcTypeMap(DbType dbType, OdbcType odbcType,
                    SQL_C_TYPE nativeType, SQL_TYPE sqlType)
 {
     DbType     = dbType;
     OdbcType   = odbcType;
     SqlType    = sqlType;
     NativeType = nativeType;
 }
Exemple #2
0
        internal void UpdateTypes(SQL_TYPE sqlType)
        {
            SqlType = sqlType;
            OdbcTypeMap map = OdbcTypeConverter.GetTypeMap(SqlType);

            OdbcType = map.OdbcType;
            SqlCType = map.NativeType;
        }
Exemple #3
0
 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);

		}
Exemple #5
0
 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);
Exemple #6
0
		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);
Exemple #7
0
        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;
 }
Exemple #15
0
		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];
		}
Exemple #16
0
		public OdbcTypeMap (DbType dbType, OdbcType odbcType, 
				SQL_C_TYPE nativeType, SQL_TYPE sqlType)
		{
			DbType          = dbType;
			OdbcType        = odbcType;
			SqlType         = sqlType;
			NativeType      = nativeType;
		}