2004-03-15 Umadevi S (sumadevi@novell.com)
[mono.git] / mcs / class / System.Data / System.Data.Odbc / OdbcColumn.cs
1 using System;\r
2 \r
3 namespace System.Data.Odbc\r
4 {\r
5         /// <summary>\r
6         /// Summary description for OdbcColumn.\r
7         /// </summary>\r
8         internal class OdbcColumn\r
9         {\r
10                 internal string ColumnName;\r
11                 internal OdbcType OdbcType;\r
12                 internal bool AllowDBNull;\r
13                 internal int MaxLength;\r
14                 internal int Digits;\r
15                 internal object Value;\r
16 \r
17                 internal OdbcColumn(string Name, OdbcType Type)\r
18                 {\r
19                         this.ColumnName=Name;\r
20                         this.OdbcType=Type;             \r
21                         AllowDBNull=false;\r
22                         MaxLength=0;\r
23                         Digits=0;\r
24                         Value=null;\r
25                 }\r
26 \r
27                 internal Type DataType\r
28                 {\r
29                         get\r
30                         {\r
31                                 switch (OdbcType)\r
32                                 {\r
33                                         case OdbcType.TinyInt:\r
34                                                 return typeof(System.Byte);\r
35                                         case OdbcType.BigInt: \r
36                                                 return typeof(System.Int64);\r
37                                         case OdbcType.Image:\r
38                                         case OdbcType.VarBinary:\r
39                                         case OdbcType.Binary:\r
40                                                 return typeof(byte[]);\r
41                                         case OdbcType.Bit:\r
42                                                 return typeof(bool);\r
43                                         case OdbcType.NChar:\r
44                                         case OdbcType.Char:\r
45                                                 return typeof(char);\r
46                                         case OdbcType.Time:\r
47                                         case OdbcType.Timestamp:\r
48                                         case OdbcType.DateTime:\r
49                                         case OdbcType.Date:\r
50                                         case OdbcType.SmallDateTime:\r
51                                                 return typeof(DateTime);\r
52                                         case OdbcType.Decimal:\r
53                                                 return typeof(Decimal);\r
54                                         case OdbcType.Numeric:\r
55                                         case OdbcType.Double:\r
56                                                 return typeof(Double);\r
57                                         case OdbcType.Int:\r
58                                                 return typeof(System.Int32);\r
59                                         case OdbcType.Text:\r
60                                         case OdbcType.NText:\r
61                                         case OdbcType.NVarChar:\r
62                                         case OdbcType.VarChar:\r
63                                                 return typeof(string);\r
64                                         case OdbcType.Real:\r
65                                                 return typeof(float);\r
66                                         case OdbcType.SmallInt:\r
67                                                 return typeof(System.Int16);\r
68                                         case OdbcType.UniqueIndetifier:\r
69                                                 return typeof(Guid);\r
70                                 }\r
71                                 throw new InvalidCastException();\r
72                         }\r
73                 }\r
74 \r
75                 internal bool IsDateType\r
76                 {\r
77                         get\r
78                         {\r
79                                 switch (OdbcType)\r
80                                 {\r
81                                         case OdbcType.Time:\r
82                                         case OdbcType.Timestamp:\r
83                                         case OdbcType.DateTime:\r
84                                         case OdbcType.Date:\r
85                                         case OdbcType.SmallDateTime:\r
86                                                 return true;\r
87                                         default:\r
88                                                 return false;\r
89                                 }\r
90                         }\r
91                 }\r
92 \r
93                 internal bool IsStringType\r
94                 {\r
95                         get\r
96                         {\r
97                                 switch (OdbcType)\r
98                                 {\r
99                                         case OdbcType.Text:\r
100                                         case OdbcType.NText:\r
101                                         case OdbcType.NVarChar:\r
102                                         case OdbcType.VarChar:\r
103                                                 return true;\r
104                                         default:\r
105                                                 return false;\r
106                                 }\r
107                         }\r
108                 }\r
109 \r
110         }\r
111 }\r