New test.
[mono.git] / mcs / class / System.Data / System.Data.Odbc / OdbcType.cs
1 //
2 // System.Data.Odbc.OdbcType
3 //
4 // Author:
5 //   Sureshkumar T <tsureshkumar@novell.com> 2005.
6 //   Brian Ritchie
7 //
8 // Copyright (C) Brian Ritchie, 2002
9 //
10
11 //
12 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
13 //
14 // Permission is hereby granted, free of charge, to any person obtaining
15 // a copy of this software and associated documentation files (the
16 // "Software"), to deal in the Software without restriction, including
17 // without limitation the rights to use, copy, modify, merge, publish,
18 // distribute, sublicense, and/or sell copies of the Software, and to
19 // permit persons to whom the Software is furnished to do so, subject to
20 // the following conditions:
21 // 
22 // The above copyright notice and this permission notice shall be
23 // included in all copies or substantial portions of the Software.
24 // 
25 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
29 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
30 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 //
33
34 using System.Data;
35 using System.Data.Common;
36
37 namespace System.Data.Odbc
38
39
40         public enum OdbcType
41         {
42                 BigInt = 1,
43                 Binary = 2,
44                 Bit = 3,
45                 Char = 4,
46                 Date = 0x17,
47                 DateTime = 5,
48                 Decimal = 6,
49                 Double = 8,
50                 Image = 9,
51                 Int = 10,
52                 NChar = 11,
53                 NText = 12,
54                 Numeric = 7,
55                 NVarChar = 13,
56                 Real = 14,
57                 SmallDateTime = 0x10,
58                 SmallInt = 0x11,
59                 Text = 0x12,
60                 Time = 0x18,
61                 Timestamp = 0x13,
62                 TinyInt = 20,
63                 UniqueIdentifier = 15,
64                 VarBinary = 0x15,
65                 VarChar = 0x16
66         }
67
68         // From the ODBC documentation:
69         //
70         //      In ODBC 3.x, the identifiers for date, time, and timestamp SQL data types 
71         //  have changed from SQL_DATE, SQL_TIME, and SQL_TIMESTAMP (with instances of 
72         //  #define in the header file of 9, 10, and 11) to SQL_TYPE_DATE, SQL_TYPE_TIME,
73         //  and SQL_TYPE_TIMESTAMP (with instances of #define in the header file of 91, 92, and 93), 
74         //  respectively.
75         
76         // This internal enum is used as mapping types into database drivers.
77         // This is essentially a map between public OdbcType to C types for 
78         // Odbc to call into driver. These values are taken from sql.h & sqlext.h.
79         internal enum SQL_TYPE : short
80         {
81                 BIGINT                          = (-5),
82                 BINARY                          = (-2),
83                 BIT                             = (-7),
84                 CHAR                            = 1,
85                 DATE                            = 9,
86                 DECIMAL                         = 3,
87                 DOUBLE                          = 8,
88                 GUID                            = (-11),
89                 INTEGER                         = 4,
90                 INTERVAL_DAY                    = (100 + 3),
91                 INTERVAL_DAY_TO_HOUR            = (100 + 8),
92                 INTERVAL_DAY_TO_MINUTE          = (100 + 9),
93                 INTERVAL_DAY_TO_SECOND          = (100 + 10),
94                 INTERVAL_HOUR                   = (100 + 4),
95                 INTERVAL_HOUR_TO_MINUTE         = (100 + 11),
96                 INTERVAL_HOUR_TO_SECOND         = (100 + 12),
97                 INTERVAL_MINUTE                 = (100 + 5),
98                 INTERVAL_MINUTE_TO_SECOND       = (100 + 13),
99                 INTERVAL_MONTH                  = (100 + 2),
100                 INTERVAL_SECOND                 = (100 + 6),
101                 INTERVAL_YEAR                   = (100 + 1),
102                 INTERVAL_YEAR_TO_MONTH          = (100 + 7),
103                 LONGVARBINARY                   = (-4),
104                 LONGVARCHAR                     = (-1),
105                 NUMERIC                         = 2,
106                 REAL                            = 7,
107                 SMALLINT                        = 5,
108                 TIME                            = 10,
109                 TIMESTAMP                       = 11,
110                 TINYINT                         = (-6),
111                 TYPE_DATE                       = 91,
112                 TYPE_TIME                       = 92,
113                 TYPE_TIMESTAMP                  = 93,
114                 VARBINARY                       = (-3),
115                 VARCHAR                         = 12,
116                 WCHAR                           = (-8),
117                 WLONGVARCHAR                    = (-10),
118                 WVARCHAR                        = (-9),
119                 UNASSIGNED                      = Int16.MaxValue
120         }
121
122         internal enum SQL_C_TYPE : short
123         {
124                 BINARY                          = (-2),
125                 BIT                             = (-7),
126                 BOOKMARK                        = (4 +(-22)),
127                 CHAR                            = 1,
128                 DATE                            = 9,
129                 DEFAULT                         = 99,
130                 DOUBLE                          = 8,
131                 FLOAT                           = 7,
132                 GUID                            = (-11),
133                 INTERVAL_DAY                    = (100 + 3),
134                 INTERVAL_DAY_TO_HOUR            = (100 + 8),
135                 INTERVAL_DAY_TO_MINUTE          = (100 + 9),
136                 INTERVAL_DAY_TO_SECOND          = (100 + 10),
137                 INTERVAL_HOUR                   = (100 + 4),
138                 INTERVAL_HOUR_TO_MINUTE         = (100 + 11),
139                 INTERVAL_HOUR_TO_SECOND         = (100 + 12),
140                 INTERVAL_MINUTE                 = (100 + 5),
141                 INTERVAL_MINUTE_TO_SECOND       = (100 + 13),
142                 INTERVAL_MONTH                  = (100 + 2),
143                 INTERVAL_SECOND                 = (100 + 6),
144                 INTERVAL_YEAR                   = (100 + 1),
145                 INTERVAL_YEAR_TO_MONTH          = (100 + 7),
146                 LONG                            = 4,
147                 NUMERIC                         = 2,
148                 SBIGINT                         = ((-5)+(-20)),
149                 SHORT                           = 5,
150                 SLONG                           = (4 +(-20)),
151                 SSHORT                          = (5 +(-20)),
152                 STINYINT                        = ((-6)+(-20)),
153                 TCHAR                           = 1,
154                 TIME                            = 10,
155                 TIMESTAMP                       = 11,
156                 TINYINT                         = (-6),
157                 TYPE_DATE                       = 91,
158                 TYPE_TIME                       = 92,
159                 TYPE_TIMESTAMP                  = 93,
160                 UBIGINT                         = ((-5)+(-22)),
161                 ULONG                           = (4 +(-22)),
162                 USHORT                          = (5 +(-22)),
163                 UTINYINT                        = ((-6)+(-22)),
164                 WCHAR                           = (-8),
165                 UNASSIGNED                      = Int16.MaxValue
166         }
167 }