1 #region MIT license
2 //
3 // MIT license
4 //
5 // Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
6 //
7 // Permission is hereby granted, free of charge, to any person obtaining a copy
8 // of this software and associated documentation files (the "Software"), to deal
9 // in the Software without restriction, including without limitation the rights
10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 // copies of the Software, and to permit persons to whom the Software is
12 // furnished to do so, subject to the following conditions:
13 //
14 // The above copyright notice and this permission notice shall be included in
15 // all copies or substantial portions of the Software.
16 //
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 // THE SOFTWARE.
24 //
25 #endregion
26 namespace DbLinq.Vendor
27 {
28     /// <summary>
29     /// Represents a database data type
30     /// </summary>
31 #if !MONO_STRICT
32     public
33 #endif
34     interface IDataType
35     {
36         /// <summary>
37         /// The base type, like 'number', 'varchar'
38         /// </summary>
39         string SqlType { get; set; }
40         /// <summary>
41         /// The managed type to use, like System.Int32
42         /// </summary>
43         string ManagedType { get; set; }
44         /// <summary>
45         /// For all types, the possibility to have a NULL
46         /// </summary>
47         bool Nullable { get; set; }
48         /// <summary>
49         /// On non numeric data types, the length (for strings or blobs)
50         /// </summary>
51         long? Length { get; set; }
52         /// <summary>
53         /// On numeric data types, the number of digits in the integer part
54         /// </summary>
55         int? Precision { get; set; }
56         /// <summary>
57         /// On numeric data types, the number of digits in the decimal part
58         /// </summary>
59         int? Scale { get; set; }
60         /// <summary>
61         /// On numeric data types, if there is a sign
62         /// </summary>
63         bool? Unsigned { get; set; }
64 
65         /// <summary>
66         /// The original (or domain) type, returned raw by column information.
67         /// Is also used to generated the database.
68         /// </summary>
69         string FullType { get; set; }
70     }
71 }
72