annotate Source/Templates/Sybase.ttinclude @ 5:f7d63a092920

Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author cin
date Tue, 10 Mar 2015 16:02:11 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 <#
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 ConnectionType = "Sybase.Data.AseClient.AseConnection, Sybase.AdoNet2.AseClient";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 #><#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 bool GenerateSybaseSystemTables = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 private void LoadServerMetadata()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 var tables = CreateList(new { ID = 0, Table = new Table() });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 var columns = CreateList(new { ID = 0, Column = new Column() });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 using (var conn = GetConnection())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 using (var cmd = conn.CreateCommand())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 // Load tables & vies.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 cmd.CommandText = @"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 USER_NAME(uid),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 name,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 type
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 sysobjects
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 WHERE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 type IN ('U','V')";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 using (var rd = cmd.ExecuteReader())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 while (rd.Read())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 var t = new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 ID = Convert.ToInt32(rd[0]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 Table = new Table
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 Owner = rd[1].ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 TableName = rd[2].ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 ClassName = rd[2].ToString(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 IsView = rd[3].ToString()[0] == 'V',
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 BaseClassName = BaseEntityClass,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 tables.Add(t);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 // Load columns.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 cmd.CommandText = @"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 o.id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 c.colid,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 c.name,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 c.status,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 c.usertype,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 t.type,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 c.length,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 c.prec,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 c.scale,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 t.name as typename,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 Convert(bit, c.status & 0x08) isNullable,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 Convert(bit, c.status & 0x80) isIdentity
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 syscolumns c
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 JOIN sysobjects o ON c.id = o.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 JOIN systypes t ON c.usertype = t.usertype
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 WHERE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 o.type IN ('U','V')";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 using (var rd = cmd.ExecuteReader())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 while (rd.Read())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 var col = new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 ID = Convert.ToInt32(rd["id"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 Column = new Column
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 ID = Convert.ToInt16 (rd["colid"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 ColumnName = Convert.ToString (rd["name"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 MemberName = Convert.ToString (rd["name"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 ColumnType = Convert.ToString (rd["typename"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 IsNullable = Convert.ToBoolean(rd["isNullable"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 IsIdentity = Convert.ToBoolean(rd["isIdentity"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 Length = rd.IsDBNull(rd.GetOrdinal("length")) ? 0 : Convert.ToInt64(rd["length"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 Precision = rd.IsDBNull(rd.GetOrdinal("prec")) ? 0 : Convert.ToInt32(rd["prec"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 Scale = rd.IsDBNull(rd.GetOrdinal("scale")) ? 0 : Convert.ToInt32(rd["scale"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 var c = col.Column;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 switch (Convert.ToInt32(rd["type"]))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 case 34 /* image */ : c.Type = "byte[]"; c.DbType = DbType.Binary; c.SqlDbType = SqlDbType.Image; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 case 35 /* text */ : c.Type = "string"; c.DbType = DbType.String; c.SqlDbType = SqlDbType.Text; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 case 45 /* binary */ : c.Type = "byte[]"; c.DbType = DbType.Binary; c.SqlDbType = SqlDbType.Binary; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 case 48 /* tinyint */ : c.Type = "byte"; c.DbType = DbType.Byte; c.SqlDbType = SqlDbType.TinyInt; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 case 49 /* date */ : c.Type = "DateTime"; c.DbType = DbType.Date; c.SqlDbType = SqlDbType.Date; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 case 50 /* bit */ : c.Type = "bool"; c.DbType = DbType.Boolean; c.SqlDbType = SqlDbType.Bit; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 case 51 /* time */ : c.Type = "DateTime"; c.DbType = DbType.Time; c.SqlDbType = SqlDbType.Time; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 case 52 /* smallint */ : c.Type = "short"; c.DbType = DbType.Int16; c.SqlDbType = SqlDbType.SmallInt; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 case 55 /* decimal */ : c.Type = "decimal"; c.DbType = DbType.Decimal; c.SqlDbType = SqlDbType.Decimal; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 case 56 /* int */ : c.Type = "int"; c.DbType = DbType.Int32; c.SqlDbType = SqlDbType.Int; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 case 58 /* smalldatetime */ : c.Type = "DateTime"; c.DbType = DbType.DateTime; c.SqlDbType = SqlDbType.SmallDateTime; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 case 59 /* real */ : c.Type = "float"; c.DbType = DbType.Single; c.SqlDbType = SqlDbType.Real; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 case 60 /* money */ : c.Type = "decimal"; c.DbType = DbType.Currency; c.SqlDbType = SqlDbType.Money; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 case 61 /* datetime */ : c.Type = "DateTime"; c.DbType = DbType.DateTime; c.SqlDbType = SqlDbType.DateTime; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 case 62 /* float */ : c.Type = "double"; c.DbType = DbType.Double; c.SqlDbType = SqlDbType.Float; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 case 63 /* numeric */ : c.Type = "decimal"; c.DbType = DbType.Decimal; c.SqlDbType = SqlDbType.Decimal; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 case 65 /* usmallint */ : c.Type = "ushort"; c.DbType = DbType.UInt16; c.SqlDbType = SqlDbType.SmallInt; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 case 66 /* uint */ : c.Type = "uint"; c.DbType = DbType.UInt32; c.SqlDbType = SqlDbType.Int; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 case 67 /* ubigint */ : c.Type = "ulong"; c.DbType = DbType.UInt64; c.SqlDbType = SqlDbType.BigInt; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 case 122 /* smallmoney */ : c.Type = "decimal"; c.DbType = DbType.Currency; c.SqlDbType = SqlDbType.SmallMoney; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 case 174 /* unitext */ : c.Type = "string"; c.DbType = DbType.String; c.SqlDbType = SqlDbType.NText; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 case 189 /* bigdatetime */ : c.Type = "DateTime"; c.DbType = DbType.DateTime2; c.SqlDbType = SqlDbType.DateTime2; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 case 190 /* bigtime */ : c.Type = "DateTime"; c.DbType = DbType.DateTime2; c.SqlDbType = SqlDbType.DateTime2; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 case 191 /* bigint */ : c.Type = "long"; c.DbType = DbType.Int64; c.SqlDbType = SqlDbType.BigInt; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 case 37 /* varbinary */
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 /* timestamp */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 c.Type = "byte[]";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 c.DbType = DbType.Binary;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 c.SqlDbType = Convert.ToString(rd["typename"]) == "timestamp" ? SqlDbType.Timestamp : SqlDbType.VarBinary;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 case 39 /* sysname */
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 /* longsysname */
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 /* varchar */
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 /* nvarchar */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 c.Type = "string";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 if (Convert.ToString(rd["typename"]) == "nvarchar")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 c.DbType = DbType.String;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 c.SqlDbType = SqlDbType.NVarChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 c.DbType = DbType.AnsiString;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 c.SqlDbType = SqlDbType.VarChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 case 47 /* char */
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 /* nchar */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 c.Type = Convert.ToInt32 (rd["length"]) == 1 ? "char" : "string";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 c.DbType = Convert.ToString(rd["typename"]) == "char" ? DbType.AnsiStringFixedLength : DbType.StringFixedLength;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 c.SqlDbType = Convert.ToString(rd["typename"]) == "char" ? SqlDbType.Char : SqlDbType.NChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 case 135 /* unichar */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 c.Type = Convert.ToInt32 (rd["length"]) == 1 ? "char" : "string";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 c.DbType = DbType.StringFixedLength;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 c.SqlDbType = SqlDbType.NChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 case 155 /* univarchar */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 c.Type = Convert.ToInt32 (rd["length"]) == 1 ? "char" : "string";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 c.DbType = DbType.String;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 c.SqlDbType = SqlDbType.NVarChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 case 36 /* extended type */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 case 38 /* intn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 case 68 /* uintn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 case 106 /* decimaln */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 case 108 /* numericn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 case 109 /* floatn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 case 110 /* moneyn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 case 111 /* datetimn */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 case 123 /* daten */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 case 147 /* timen */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 case 187 /* bigdatetimen */ :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 case 188 /* bigtimen */ : c.Type = "byte[]"; c.DbType = DbType.Binary; c.SqlDbType = SqlDbType.Binary; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 switch (c.Type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 case "string" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 case "byte[]" : c.IsClass = true; break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 if (c.IsNullable && !c.IsClass)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 c.Type += "?";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 columns.Add(col);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 // Load PKs.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 cmd.CommandText = @"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 i.id,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 i.name,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 INDEX_COL(USER_NAME(o.uid) + '.' + o.name, i.indid, c.colid) AS colname,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 INDEX_COLORDER(USER_NAME(o.uid) + '.' + o.name, i.indid, c.colid) AS [order],
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 c.colid
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 sysindexes i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 JOIN sysobjects o ON i.id = o.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 JOIN syscolumns c ON i.id = c.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 WHERE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 i.status2 & 2 = 2 AND
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 i.status & 2048 = 2048 AND
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 i.indid > 0 AND
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 c.colid < i.keycnt + CASE WHEN i.indid = 1 THEN 1 ELSE 0 END";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 using (var rd = cmd.ExecuteReader())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 while (rd.Read())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 var id = Convert.ToInt32 (rd["id"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 var colid = Convert.ToInt32 (rd["colid"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 var colname = Convert.ToString(rd["colname"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 columns.Single(_ => _.ID == id && _.Column.ColumnName == colname).Column.PKIndex = colid;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 // Load FKs.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 cmd.CommandText = @"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 o.name as Name,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 c.tableid as ThisTable,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 r.reftabid as OtherTable,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 COL_NAME(c.tableid, r.fokey1) as ThisColumn1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 COL_NAME(c.tableid, r.fokey2) as ThisColumn2,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 COL_NAME(c.tableid, r.fokey3) as ThisColumn3,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 COL_NAME(c.tableid, r.fokey4) as ThisColumn4,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 COL_NAME(c.tableid, r.fokey5) as ThisColumn5,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 COL_NAME(c.tableid, r.fokey6) as ThisColumn6,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 COL_NAME(c.tableid, r.fokey7) as ThisColumn7,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 COL_NAME(c.tableid, r.fokey8) as ThisColumn8,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 COL_NAME(c.tableid, r.fokey9) as ThisColumn9,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 COL_NAME(c.tableid, r.fokey10) as ThisColumn10,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 COL_NAME(c.tableid, r.fokey11) as ThisColumn11,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 COL_NAME(c.tableid, r.fokey12) as ThisColumn12,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 COL_NAME(c.tableid, r.fokey13) as ThisColumn13,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 COL_NAME(c.tableid, r.fokey14) as ThisColumn14,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 COL_NAME(c.tableid, r.fokey15) as ThisColumn15,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 COL_NAME(c.tableid, r.fokey16) as ThisColumn16,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 COL_NAME(r.reftabid, r.refkey1) as OtherColumn1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 COL_NAME(r.reftabid, r.refkey2) as OtherColumn2,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 COL_NAME(r.reftabid, r.refkey3) as OtherColumn3,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253 COL_NAME(r.reftabid, r.refkey4) as OtherColumn4,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 COL_NAME(r.reftabid, r.refkey5) as OtherColumn5,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 COL_NAME(r.reftabid, r.refkey6) as OtherColumn6,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 COL_NAME(r.reftabid, r.refkey7) as OtherColumn7,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 COL_NAME(r.reftabid, r.refkey8) as OtherColumn8,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 COL_NAME(r.reftabid, r.refkey9) as OtherColumn9,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 COL_NAME(r.reftabid, r.refkey10) as OtherColumn10,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 COL_NAME(r.reftabid, r.refkey11) as OtherColumn11,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 COL_NAME(r.reftabid, r.refkey12) as OtherColumn12,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 COL_NAME(r.reftabid, r.refkey13) as OtherColumn13,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 COL_NAME(r.reftabid, r.refkey14) as OtherColumn14,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 COL_NAME(r.reftabid, r.refkey15) as OtherColumn15,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 COL_NAME(r.reftabid, r.refkey16) as OtherColumn16
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 sysreferences r
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 JOIN sysconstraints c ON r.constrid = c.constrid
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 JOIN sysobjects o ON c.constrid = o.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 JOIN sysobjects o3 ON c.tableid = o3.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271 LEFT JOIN sysobjects o2 ON r.reftabid = o2.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 JOIN sysreferences r2 ON r.constrid = r2.constrid
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 LEFT JOIN sysindexes i ON r2.indexid = i.indid AND r2.reftabid = i.id
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 WHERE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 c.status = 64";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 using (var rd = cmd.ExecuteReader())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 while (rd.Read())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 var name = Convert.ToString(rd["Name"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 var thisTableID = Convert.ToInt32 (rd["ThisTable"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 var otherTableID = Convert.ToInt32 (rd["OtherTable"]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 var thisTable = (from t in tables where t.ID == thisTableID select t.Table).Single();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 var otherTable = (from t in tables where t.ID == otherTableID select t.Table).Single();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 thisTable.ForeignKeys.Add(name, new ForeignKey { KeyName = name, MemberName = name, OtherTable = otherTable });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 for (int i = 1; i <= 16; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 if (rd.IsDBNull(rd.GetOrdinal("ThisColumn" + i)))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 var thisColumnName = Convert.ToString(rd["ThisColumn" + i]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 var otherColumnName = Convert.ToString(rd["OtherColumn" + i]);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 var thisColumn = (from c in columns where c.ID == thisTableID && c.Column.ColumnName == thisColumnName select c.Column).Single();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 var otherColumn = (from c in columns where c.ID == otherTableID && c.Column.ColumnName == otherColumnName select c.Column).Single();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 var key = thisTable.ForeignKeys[name];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 key.ThisColumns. Add(thisColumn);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 key.OtherColumns.Add(otherColumn);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 var qc =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 from c in columns
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 group c by c.ID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 join t in tables on gr.Key equals t.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 select new { t.Table, gr };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 foreach (var c in qc)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 foreach (var col in from col in c.gr orderby col.Column.ID select col.Column)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 c.Table.Columns.Add(col.ColumnName, col);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 if (c.Table.Owner == "dbo")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 c.Table.Owner = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 Tables.Add(c.Table.TableName, c.Table);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 Tables.Add(c.Table.Owner + "." + c.Table.TableName, c.Table);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 if (GenerateSybaseSystemTables)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 Tables.Add("sysobjects", new Table
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 TableName = "sysobjects",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 ClassName = "SysObject",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 BaseClassName = BaseEntityClass,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 Columns =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 { "name", new VarCharColumn { ColumnName = "name", Length = 255 }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 { "id", new IntColumn { ColumnName = "id" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 { "uid", new IntColumn { ColumnName = "uid" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 { "type", new Column {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 ColumnName = "type",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 Type = "string",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 ColumnType = "char",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 DbType = DbType.AnsiStringFixedLength,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 SqlDbType = SqlDbType.Char,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 Length = 2,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 { "userstat", new SmallIntColumn { ColumnName = "userstat" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 { "sysstat", new SmallIntColumn { ColumnName = "sysstat" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354 { "indexdel", new SmallIntColumn { ColumnName = "indexdel" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 { "schemacnt", new SmallIntColumn { ColumnName = "schemacnt" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 { "sysstat2", new IntColumn { ColumnName = "sysstat2" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 { "crdate", new DateTimeColumn { ColumnName = "crdate" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 { "expdate", new DateTimeColumn { ColumnName = "expdate" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 { "deltrig", new IntColumn { ColumnName = "deltrig" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 { "instrig", new IntColumn { ColumnName = "instrig" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 { "updtrig", new IntColumn { ColumnName = "updtrig" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 { "seltrig", new IntColumn { ColumnName = "seltrig" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 { "ckfirst", new IntColumn { ColumnName = "ckfirst" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 { "cache", new SmallIntColumn { ColumnName = "cache" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 { "audflags", new IntColumn { ColumnName = "audflags", IsNullable = true }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 { "objspare", new IntColumn { ColumnName = "objspare" }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 { "versionts", new Column {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 ColumnName = "versionts",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 IsNullable = true,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 Type = "byte[]",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 ColumnType = "binary",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 IsClass = true,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 DbType = DbType.Binary,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 SqlDbType = SqlDbType.Binary,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 Length = 6,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 { "loginame", new VarCharColumn { ColumnName = "loginame", Length = 30 }},
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 int n = 1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 foreach (var col in Tables["sysobjects"].Columns)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 var c = col.Value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 c.ID = n++;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 c.MemberName = c.ColumnName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 if (c.IsNullable && !c.IsClass)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 c.Type = c.Type + "?";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 class VarCharColumn : Column
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 public VarCharColumn()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 Type = "string";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 ColumnType = "varchar";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 IsClass = true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 DbType = DbType.AnsiString;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 SqlDbType = SqlDbType.VarChar;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 class IntColumn : Column
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 public IntColumn()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 Type = "int";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 ColumnType = "int";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 DbType = DbType.Int32;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 SqlDbType = SqlDbType.Int;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 Length = 4;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 class SmallIntColumn : Column
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 public SmallIntColumn()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 Type = "short";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 ColumnType = "smallint";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 DbType = DbType.Int16;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427 SqlDbType = SqlDbType.SmallInt;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 Length = 2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 class DateTimeColumn : Column
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 public DateTimeColumn()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 Type = "DateTime";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 ColumnType = "datetime";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 DbType = DbType.DateTime;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 SqlDbType = SqlDbType.DateTime;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 Length = 8;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 #>