DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
DeveelDbTypeSystem.cs
Go to the documentation of this file.
1 using System;
2 using System.Data;
3 using System.Text;
4 
5 using IQToolkit.Data;
6 using IQToolkit.Data.Common;
7 
8 namespace Deveel.Data.Linq {
9  class DeveelDbTypeSystem : DbTypeSystem {
10  public override SqlDbType GetSqlType(string typeName) {
11  typeName = typeName.ToUpperInvariant();
12 
13  switch (typeName) {
14  case "VARCHAR":
15  case "STRING":
16  case "CLOB":
17  return SqlDbType.VarChar;
18  case "BINARY":
19  case "VARBINARY":
20  return SqlDbType.VarBinary;
21  case "BLOB":
22  return SqlDbType.Binary;
23  case "BOOLEAN":
24  return SqlDbType.Bit;
25  case "INTEGER":
26  return SqlDbType.Int;
27  case "NUMERIC":
28  return SqlDbType.Decimal;
29  case "TYPE":
30  return SqlDbType.Udt;
31  default:
32  return base.GetSqlType(typeName);
33  }
34  }
35 
36  public override string GetVariableDeclaration(QueryType type, bool suppressSize) {
37  // TODO: !!!
38 
39  var sb = new StringBuilder();
40  var sqlType = (DbQueryType)type;
41  var sqlDbType = sqlType.SqlDbType;
42 
43  switch (sqlDbType) {
44  case SqlDbType.Bit: {
45  sb.Append("BOOLEAN");
46  break;
47  }
48  case SqlDbType.SmallInt: {
49  sb.Append("SMALLINT");
50  break;
51  }
52  case SqlDbType.Xml: {
53  sb.Append("XMLNODE");
54  break;
55  }
56  }
57 
58  return sb.ToString();
59  }
60  }
61 }
override SqlDbType GetSqlType(string typeName)
override string GetVariableDeclaration(QueryType type, bool suppressSize)