2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Data / System.Data.Odbc / OdbcType.cs
index 0b390e272614207267f5844bd8e1d6d795392aa7..1eb6b412ca155bf3e9ed76930739a1337bb85027 100644 (file)
@@ -7,30 +7,85 @@
 // Copyright (C) Brian Ritchie, 2002
 //
 
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// 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.Data;
 using System.Data.Common;
 
 namespace System.Data.Odbc
 { 
 
-// From the ODBC documentation:
-//
-//     In ODBC 3.x, the identifiers for date, time, and timestamp SQL data types \r
-//  have changed from SQL_DATE, SQL_TIME, and SQL_TIMESTAMP (with instances of \r
-//  #define in the header file of 9, 10, and 11) to SQL_TYPE_DATE, SQL_TYPE_TIME,\r
-//  and SQL_TYPE_TIMESTAMP (with instances of #define in the header file of 91, 92, and 93), \r
-//  respectively.\r
-\r
+        public enum OdbcType
+        {
+                BigInt = 1,
+                Binary = 2,
+                Bit = 3,
+                Char = 4,
+                Date = 0x17,
+                DateTime = 5,
+                Decimal = 6,
+                Double = 8,
+                Image = 9,
+                Int = 10,
+                NChar = 11,
+                NText = 12,
+                Numeric = 7,
+                NVarChar = 13,
+                Real = 14,
+                SmallDateTime = 0x10,
+                SmallInt = 0x11,
+                Text = 0x12,
+                Time = 0x18,
+                Timestamp = 0x13,
+                TinyInt = 20,
+                UniqueIdentifier = 15,
+                VarBinary = 0x15,
+                VarChar = 0x16
+        }
+
+        // From the ODBC documentation:
+        //
+        //     In ODBC 3.x, the identifiers for date, time, and timestamp SQL data types 
+        //  have changed from SQL_DATE, SQL_TIME, and SQL_TIMESTAMP (with instances of 
+        //  #define in the header file of 9, 10, and 11) to SQL_TYPE_DATE, SQL_TYPE_TIME,
+        //  and SQL_TYPE_TIMESTAMP (with instances of #define in the header file of 91, 92, and 93), 
+        //  respectively.
+        
        // Unmapped SQL Types
        //
-       //#define SQL_FLOAT                                                  6\r
-       //   could map to SQL_DOUBLE?\r
-       //#define SQL_INTERVAL                                                  10\r
-       //   could map to SmallDateTime?\r
-
-       public enum OdbcType : short\r
-       {
-               BigInt=-5,              // SQL_BIGINT
+       //#define SQL_FLOAT                                                             6
+       //      could map to SQL_DOUBLE?
+       //#define SQL_INTERVAL                                                  10
+       //      could map to SmallDateTime?
+
+        // This internal enum is used as mapping types into database drivers.
+        // This is essentially a map between public OdbcType to C types for 
+        // Odbc to call into driver.
+        internal enum OdbcCType         // Native Types
+        {
+                SignedBigInt=-25,      // SQL_C_SBIGINT
+                BigInt=-5,             // SQL_BIGINT
                Binary=-2,              // SQL_BINARY
                Bit=-7,                 // SQL_BIT
                Char=1,                 // SQL_CHAR
@@ -51,8 +106,10 @@ namespace System.Data.Odbc
                Text=-1,                // SQL_LONGVARCHAR
                Timestamp=93,   // SQL_TYPE_TIMESTAMP
                TinyInt=-6,             // SQL_TINYINT
-               UniqueIndetifier=-11,  // SQL_GUID
+               UniqueIdentifier=-11,  // SQL_GUID
                VarBinary=-3,   // SQL_VARBINARY
                VarChar=12              // SQL_VARCHAR
-       }
+        }
+
 }
+