Update VS project files
[mono.git] / mcs / class / System.Data / System.Data.Odbc / OdbcColumn.cs
index 5a57220aaf1a252caecd212c56fc53feddd18593..a7160d823e983d4ceef7cb7238d3c3fc40fe4196 100644 (file)
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-using System;\r
-\r
-namespace System.Data.Odbc\r
-{\r
-       /// <summary>\r
-       /// Summary description for OdbcColumn.\r
-       /// </summary>\r
-       internal class OdbcColumn\r
-       {\r
-               internal string ColumnName;\r
-               internal OdbcType OdbcType;\r
-               internal bool AllowDBNull;\r
-               internal int MaxLength;\r
-               internal int Digits;\r
-               internal object Value;\r
-\r
-               internal OdbcColumn(string Name, OdbcType Type)\r
-               {\r
-                       this.ColumnName=Name;\r
-                       this.OdbcType=Type;             \r
-                       AllowDBNull=false;\r
-                       MaxLength=0;\r
-                       Digits=0;\r
-                       Value=null;\r
-               }\r
-\r
-               internal Type DataType\r
-               {\r
-                       get\r
-                       {\r
-                               switch (OdbcType)\r
-                               {\r
-                                       case OdbcType.TinyInt:\r
-                                               return typeof(System.Byte);\r
-                                       case OdbcType.BigInt: \r
-                                               return typeof(System.Int64);\r
-                                       case OdbcType.Image:\r
-                                       case OdbcType.VarBinary:\r
-                                       case OdbcType.Binary:\r
-                                               return typeof(byte[]);\r
-                                       case OdbcType.Bit:\r
-                                               return typeof(bool);\r
-                                       case OdbcType.NChar:\r
-                                       case OdbcType.Char:\r
-                                               return typeof(char);\r
-                                       case OdbcType.Time:\r
-                                       case OdbcType.Timestamp:\r
-                                       case OdbcType.DateTime:\r
-                                       case OdbcType.Date:\r
-                                       case OdbcType.SmallDateTime:\r
-                                               return typeof(DateTime);\r
-                                       case OdbcType.Decimal:\r
-                                               return typeof(Decimal);\r
-                                       case OdbcType.Numeric:\r
-                                       case OdbcType.Double:\r
-                                               return typeof(Double);\r
-                                       case OdbcType.Int:\r
-                                               return typeof(System.Int32);\r
-                                       case OdbcType.Text:\r
-                                       case OdbcType.NText:\r
-                                       case OdbcType.NVarChar:\r
-                                       case OdbcType.VarChar:\r
-                                               return typeof(string);\r
-                                       case OdbcType.Real:\r
-                                               return typeof(float);\r
-                                       case OdbcType.SmallInt:\r
-                                               return typeof(System.Int16);\r
-                                       case OdbcType.UniqueIdentifier:\r
-                                               return typeof(Guid);\r
-                               }\r
-                               throw new InvalidCastException();\r
-                       }\r
-               }\r
-\r
-               internal bool IsDateType\r
-               {\r
-                       get\r
-                       {\r
-                               switch (OdbcType)\r
-                               {\r
-                                       case OdbcType.Time:\r
-                                       case OdbcType.Timestamp:\r
-                                       case OdbcType.DateTime:\r
-                                       case OdbcType.Date:\r
-                                       case OdbcType.SmallDateTime:\r
-                                               return true;\r
-                                       default:\r
-                                               return false;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               internal bool IsStringType\r
-               {\r
-                       get\r
-                       {\r
-                               switch (OdbcType)\r
-                               {\r
-                                       case OdbcType.Text:\r
-                                       case OdbcType.NText:\r
-                                       case OdbcType.NVarChar:\r
-                                       case OdbcType.VarChar:\r
-                                               return true;\r
-                                       default:\r
-                                               return false;\r
-                               }\r
-                       }\r
-               }\r
-\r
-       }\r
-}\r
+using System;
+
+namespace System.Data.Odbc
+{
+       /// <summary>
+       /// Summary description for OdbcColumn.
+       /// </summary>
+       internal class OdbcColumn
+       {
+               internal string ColumnName;
+               internal OdbcType OdbcType;
+                private SQL_TYPE _sqlType = SQL_TYPE.UNASSIGNED;
+                private SQL_C_TYPE _sqlCType = SQL_C_TYPE.UNASSIGNED;
+               internal bool AllowDBNull;
+               internal int MaxLength;
+               internal int Digits;
+               internal object Value;
+
+               internal OdbcColumn (string Name, OdbcType Type)
+               {
+                       this.ColumnName = Name;
+                       this.OdbcType = Type;           
+                       AllowDBNull = false;
+                       MaxLength = 0;
+                       Digits = 0;
+                       Value = null;
+               }
+
+                internal OdbcColumn (string Name, SQL_TYPE type)
+               {
+                        this.ColumnName = Name;
+                       AllowDBNull = false;
+                       MaxLength = 0;
+                       Digits = 0;
+                       Value = null;
+                        UpdateTypes (type);
+
+               }
+
+
+               internal Type DataType
+               {
+                       get
+                       {
+                               switch (OdbcType)
+                               {
+                                       case OdbcType.TinyInt:
+                                               return typeof (System.Byte);
+                                       case OdbcType.BigInt: 
+                                               return typeof (System.Int64);
+                                       case OdbcType.Image:
+                                       case OdbcType.VarBinary:
+                                       case OdbcType.Binary:
+                                               return typeof (byte[]);
+                                       case OdbcType.Bit:
+                                               return typeof (bool);
+                                       case OdbcType.NChar:
+                                       case OdbcType.Char:
+                                               return typeof (string);
+                                       case OdbcType.Time:
+                                               return typeof (TimeSpan);
+                                       case OdbcType.Timestamp:
+                                       case OdbcType.DateTime:
+                                       case OdbcType.Date:
+                                       case OdbcType.SmallDateTime:
+                                               return typeof (DateTime);
+                                       case OdbcType.Decimal:
+                                       case OdbcType.Numeric:
+                                               return typeof (Decimal);
+                                       case OdbcType.Double:
+                                               return typeof (Double);
+                                       case OdbcType.Int:
+                                               return typeof (System.Int32);
+                                       case OdbcType.Text:
+                                       case OdbcType.NText:
+                                       case OdbcType.NVarChar:
+                                       case OdbcType.VarChar:
+                                               return typeof (string);
+                                       case OdbcType.Real:
+                                               return typeof (float);
+                                       case OdbcType.SmallInt:
+                                               return typeof (System.Int16);
+                                       case OdbcType.UniqueIdentifier:
+                                               return typeof (Guid);
+                               }
+                               throw new InvalidCastException();
+                       }
+               }
+
+               internal bool IsDateType
+               {
+                       get
+                       {
+                               switch (OdbcType)
+                               {
+                                       case OdbcType.Time:
+                                       case OdbcType.Timestamp:
+                                       case OdbcType.DateTime:
+                                       case OdbcType.Date:
+                                       case OdbcType.SmallDateTime:
+                                               return true;
+                                       default:
+                                               return false;
+                               }
+                       }
+               }
+
+               internal bool IsStringType
+               {
+                       get
+                       {
+                               switch (OdbcType)
+                               {
+                                       case OdbcType.Char:
+                                       case OdbcType.Text:
+                                       case OdbcType.NText:
+                                       case OdbcType.NVarChar:
+                                       case OdbcType.VarChar:
+                                               return true;
+                                       default:
+                                               return false;
+                               }
+                       }
+               }
+
+               internal bool IsVariableSizeType {
+                       get {
+                               if (IsStringType)
+                                       return true;
+                               switch (OdbcType) {
+                               case OdbcType.Binary :
+                               case OdbcType.VarBinary :
+                               case OdbcType.Image :
+                                       return true;
+                               default : 
+                                       return false;
+                               }
+                       }
+               }
+
+                internal SQL_TYPE SqlType
+                {
+                        get {
+                                if ( _sqlType == SQL_TYPE.UNASSIGNED)
+                                        _sqlType = OdbcTypeConverter.GetTypeMap (OdbcType).SqlType;
+                                return _sqlType;
+                        }
+
+                        set {_sqlType = value;}
+                }
+
+                internal SQL_C_TYPE SqlCType
+                {
+                        get {
+                                
+                                if ( _sqlCType == SQL_C_TYPE.UNASSIGNED)
+                                        _sqlCType = OdbcTypeConverter.GetTypeMap (OdbcType).NativeType;
+                                return _sqlCType;
+                        }
+                        set {_sqlCType = value;}
+                }
+
+                internal void UpdateTypes (SQL_TYPE sqlType)
+                {
+                        SqlType = sqlType;
+                        OdbcTypeMap map = OdbcTypeConverter.GetTypeMap (SqlType);
+                        OdbcType = map.OdbcType;
+                        SqlCType = map.NativeType;
+                }
+       }
+}