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