subsonic 3.0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/lib/LICENSE.txt +41 -0
  2. data/lib/SubSonic.Core.dll +0 -0
  3. data/lib/T4 Templates/ActiveRecord/ActiveRecord.tt +620 -0
  4. data/lib/T4 Templates/ActiveRecord/Context.tt +295 -0
  5. data/lib/T4 Templates/ActiveRecord/SQLServer.ttinclude +347 -0
  6. data/lib/T4 Templates/ActiveRecord/Settings.ttinclude +552 -0
  7. data/lib/T4 Templates/ActiveRecord/StoredProcedures.tt +30 -0
  8. data/lib/T4 Templates/ActiveRecord/Structs.tt +67 -0
  9. data/lib/T4 Templates/LinqTemplates/Classes.tt +117 -0
  10. data/lib/T4 Templates/LinqTemplates/Context.tt +276 -0
  11. data/lib/T4 Templates/LinqTemplates/SQLServer.ttinclude +349 -0
  12. data/lib/T4 Templates/LinqTemplates/Settings.ttinclude +551 -0
  13. data/lib/T4 Templates/LinqTemplates/StoredProcedures.tt +30 -0
  14. data/lib/T4 Templates/LinqTemplates/Structs.tt +67 -0
  15. data/lib/T4 Templates/README.txt +7 -0
  16. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/ActiveRecord.tt +560 -0
  17. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/ActiveRecord.vb +6447 -0
  18. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Context.tt +258 -0
  19. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Context.vb +349 -0
  20. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/SQLServer.ttinclude +332 -0
  21. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Settings.ttinclude +550 -0
  22. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/StoredProcedures.tt +30 -0
  23. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/StoredProcedures.vb +55 -0
  24. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Structs.tt +57 -0
  25. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Structs.vb +1478 -0
  26. data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Tests/FetchTests.vb +52 -0
  27. data/lib/T4 Templates/SubSonic.TemplatesVB/App.config +9 -0
  28. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Application.Designer.vb +13 -0
  29. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Application.myapp +10 -0
  30. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/AssemblyInfo.vb +35 -0
  31. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Resources.Designer.vb +63 -0
  32. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Resources.resx +117 -0
  33. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Settings.Designer.vb +73 -0
  34. data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Settings.settings +7 -0
  35. data/lib/T4 Templates/SubSonic.TemplatesVB/SubSonic.TemplatesVB.vbproj +171 -0
  36. data/lib/T4 Templates/SubSonic.TemplatesVB/SubSonic.TemplatesVB.vbproj.user +5 -0
  37. data/lib/T4 Templates/TemplateProviders/MySQL.ttinclude +278 -0
  38. data/lib/T4 Templates/TemplateProviders/MySQL.ttinclude.orig +303 -0
  39. data/lib/T4 Templates/TemplateProviders/MySQLTest.tt +27 -0
  40. data/lib/T4 Templates/TemplateProviders/SQLite.ttinclude +194 -0
  41. data/lib/T4 Templates/TemplateProviders/SQLite.ttinclude.orig +236 -0
  42. data/lib/T4 Templates/TemplateProviders/SQLiteTest.tt +27 -0
  43. data/lib/T4 Templates/TemplateProviders/Settings.ttinclude +551 -0
  44. metadata +112 -0
@@ -0,0 +1,5 @@
1
+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
+ <PropertyGroup>
3
+ <ProjectView>ShowAllFiles</ProjectView>
4
+ </PropertyGroup>
5
+ </Project>
@@ -0,0 +1,278 @@
1
+ <#@ include file="Settings.ttinclude" #>
2
+ <#@ assembly name="MySql.Data" #>
3
+ <#@ import namespace="MySql.Data.MySqlClient" #>
4
+ <#+
5
+ MySqlConnection conn;
6
+
7
+
8
+ List<FKTable> LoadFKTables(string tableName){
9
+ string fkSQL=@"SELECT*
10
+ FROM information_schema.KEY_COLUMN_USAGE
11
+ WHERE
12
+ (REFERENCED_TABLE_SCHEMA = (@schema)
13
+ AND REFERENCED_TABLE_NAME =@table
14
+ AND TABLE_NAME is not null
15
+ )
16
+ OR
17
+ (TABLE_SCHEMA = (@schema)
18
+ AND TABLE_NAME =@table
19
+ AND REFERENCED_TABLE_NAME is not null
20
+ )
21
+ ORDER BY TABLE_NAME, COLUMN_NAME;";
22
+
23
+ var result=new List<FKTable>();
24
+
25
+ using(conn=new MySqlConnection(ConnectionString)){
26
+
27
+ var cmd=new MySqlCommand(fkSQL,conn);
28
+ cmd.Parameters.AddWithValue("@table",tableName);
29
+ cmd.Parameters.AddWithValue("@schema",DatabaseName);
30
+ conn.Open();
31
+ var rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
32
+
33
+ while(rdr.Read()){
34
+ FKTable fk=new FKTable();
35
+ string thisTable=rdr["TABLE_NAME"].ToString();
36
+
37
+ if(tableName.ToLower()==thisTable.ToLower()){
38
+ fk.ThisTable=rdr["TABLE_NAME"].ToString();
39
+ fk.ThisColumn=rdr["COLUMN_NAME"].ToString();
40
+ fk.OtherTable=rdr["REFERENCED_TABLE_NAME"].ToString();
41
+ fk.OtherColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
42
+
43
+ }else{
44
+ fk.ThisTable=rdr["REFERENCED_TABLE_NAME"].ToString();
45
+ fk.ThisColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
46
+ fk.OtherTable=rdr["TABLE_NAME"].ToString();
47
+ fk.OtherColumn=rdr["COLUMN_NAME"].ToString();
48
+
49
+ }
50
+
51
+ fk.OtherClass=Inflector.MakeSingular(CleanUp(fk.OtherTable));
52
+ fk.OtherQueryable=Inflector.MakePlural(fk.OtherClass);
53
+
54
+ result.Add(fk);
55
+ }
56
+
57
+
58
+ }
59
+
60
+ return result;
61
+
62
+
63
+ }
64
+
65
+
66
+ List<Table> LoadTables(){
67
+
68
+ var result=new List<Table>();
69
+
70
+ using(conn=new MySqlConnection(ConnectionString)){
71
+ conn.Open();
72
+
73
+ //this will return everything for the DB
74
+ var schema = conn.GetSchema("COLUMNS");
75
+ conn.Close();
76
+
77
+ //spin through once to get all the tables
78
+ foreach (DataRow row in schema.Rows)
79
+ {
80
+ if(!result.Any(x=>x.Name.Equals(row["TABLE_NAME"].ToString(),StringComparison.InvariantCultureIgnoreCase)))
81
+ {
82
+
83
+ //add it
84
+ Table tbl = new Table();
85
+ tbl.PrimaryKey="";
86
+ tbl.Name = row["TABLE_NAME"].ToString();
87
+ tbl.FKTables=LoadFKTables(tbl.Name);
88
+ tbl.CleanName=CleanUp(tbl.Name);
89
+ tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);
90
+ tbl.QueryableName=Inflector.MakePlural(tbl.ClassName);
91
+ result.Add(tbl);
92
+ }
93
+ }
94
+
95
+ //loop again - but this time pull by table name
96
+ foreach (var item in result) {
97
+ item.Columns=new List<Column>();
98
+ //pull the columns from the schema
99
+ var columns = schema.Select("TABLE_NAME='" + item.Name + "'");
100
+
101
+ foreach (var row in columns) {
102
+ Column col=new Column();
103
+ col.Name=row["COLUMN_NAME"].ToString();
104
+ col.CleanName=CleanUp(col.Name);
105
+ col.DataType=row["DATA_TYPE"].ToString();
106
+
107
+ /* Pass the information whether Data Type Unsigned or Not **/
108
+ if (row["COLUMN_TYPE"].ToString().Contains("unsigned"))
109
+ {
110
+ col.DbType=GetDbType(col.DataType+" unsigned");
111
+ col.SysType=GetSysType(col.DataType+" unsigned");
112
+ }
113
+ else{
114
+ col.DbType=GetDbType(col.DataType);
115
+ col.SysType=GetSysType(col.DataType);
116
+ }
117
+
118
+ if (TreatTinyint1AsBool && row["COLUMN_TYPE"].ToString() == "tinyint(1)") {
119
+ col.SysType = "bool";
120
+ col.DbType = DbType.Boolean;
121
+ }
122
+
123
+ col.AutoIncrement=row["EXTRA"].ToString()=="auto_increment";
124
+ col.IsNullable=row["IS_NULLABLE"].ToString()=="YES";
125
+ col.IsPK=row["COLUMN_KEY"].ToString()=="PRI";
126
+
127
+ if(col.IsPK){
128
+ item.PrimaryKey=col.Name ?? "";
129
+ }
130
+
131
+ int.TryParse(row["CHARACTER_MAXIMUM_LENGTH"].ToString(),out col.MaxLength);
132
+
133
+ item.Columns.Add(col);
134
+
135
+ }
136
+ }
137
+ }
138
+
139
+ return result;
140
+ }
141
+
142
+ string GetSysType(string sqlType){
143
+ string sysType="string";
144
+ switch (sqlType) {
145
+ case "bigint unsigned":
146
+ sysType= "ulong";
147
+ break;
148
+ case "bigint":
149
+ sysType= "long";
150
+ break;
151
+ case "mediumint unsigned":
152
+ case "int unsigned":
153
+ sysType= "uint";
154
+ break;
155
+ case "mediumint":
156
+ case "int":
157
+ sysType= "int";
158
+ break;
159
+ case "smallint unsigned":
160
+ sysType= "ushort";
161
+ break;
162
+ case "smallint":
163
+ sysType= "short";
164
+ break;
165
+ case "guid":
166
+ sysType= "Guid";
167
+ break;
168
+ case "smalldatetime":
169
+ case "date":
170
+ case "datetime":
171
+ case "timestamp":
172
+ sysType= "DateTime";
173
+ break;
174
+ case "float":
175
+ sysType="double";
176
+ break;
177
+ case "real":
178
+ case "numeric":
179
+ case "smallmoney":
180
+ case "decimal unsigned":
181
+ case "decimal":
182
+ case "money":
183
+ sysType= "decimal";
184
+ break;
185
+ case "tinyint unsigned":
186
+ sysType= "byte";
187
+ break;
188
+ case "tinyint":
189
+ sysType= "sbyte";
190
+ break;
191
+ case "bit":
192
+ sysType= "bool";
193
+ break;
194
+ case "longblob":
195
+ case "image":
196
+ case "binary":
197
+ case "varbinary":
198
+ sysType= "byte[]";
199
+ break;
200
+ }
201
+ return sysType;
202
+ }
203
+ DbType GetDbType(string sqlType){
204
+ switch(sqlType)
205
+ {
206
+ case "varchar":
207
+ return DbType.AnsiString;
208
+ case "nvarchar":
209
+ return DbType.String;
210
+ case "mediumint unsigned":
211
+ case "int unsigned":
212
+ case "integer unsigned":
213
+ return DbType.UInt32;
214
+ case "mediumint":
215
+ case "int":
216
+ case "integer":
217
+ return DbType.Int32;
218
+ case "guid":
219
+ return DbType.Guid;
220
+ case "date":
221
+ case "timestamp":
222
+ case "datetime":
223
+ return DbType.DateTime;
224
+ case "bigint unsigned":
225
+ return DbType.UInt64;
226
+ case "bigint":
227
+ return DbType.Int64;
228
+ case "binary":
229
+ return DbType.Binary;
230
+ case "bit":
231
+ return DbType.Boolean;
232
+ case "char":
233
+ return DbType.AnsiStringFixedLength;
234
+ case "decimal":
235
+ return DbType.Decimal;
236
+ case "float":
237
+ case "double":
238
+ return DbType.Double;
239
+ case "image":
240
+ return DbType.Binary;
241
+ case "money":
242
+ return DbType.Currency;
243
+ case "nchar":
244
+ return DbType.String;
245
+ case "longtext":
246
+ return DbType.String;
247
+ case "longblob":
248
+ return DbType.Object;
249
+ case "numeric":
250
+ return DbType.Decimal;
251
+ case "real":
252
+ return DbType.Single;
253
+ case "smalldatetime":
254
+ return DbType.DateTime;
255
+ case "smallint unsigned":
256
+ return DbType.UInt16;
257
+ case "smallint":
258
+ return DbType.Int16;
259
+ case "smallmoney":
260
+ return DbType.Currency;
261
+ case "sql_variant":
262
+ return DbType.String;
263
+ case "sysname":
264
+ return DbType.String;
265
+ case "text":
266
+ return DbType.AnsiString;
267
+ case "tinyint unsigned":
268
+ return DbType.Byte;
269
+ case "tinyint":
270
+ return DbType.SByte;
271
+ case "varbinary":
272
+ return DbType.Binary;
273
+ default:
274
+ return DbType.AnsiString;
275
+ }
276
+
277
+ }
278
+ #>
@@ -0,0 +1,303 @@
1
+ <#@ include file="Settings.ttinclude" #>
2
+ <#@ assembly name="MySql.Data" #>
3
+ <#@ import namespace="MySql.Data.MySqlClient" #>
4
+ <#+
5
+ MySqlConnection conn;
6
+
7
+
8
+ List<FKTable> LoadFKTables(string tableName){
9
+ string fkSQL=@"SELECT*
10
+ FROM information_schema.KEY_COLUMN_USAGE
11
+ WHERE
12
+ (REFERENCED_TABLE_SCHEMA = (@schema)
13
+ AND REFERENCED_TABLE_NAME =@table
14
+ AND TABLE_NAME is not null
15
+ )
16
+ OR
17
+ (TABLE_SCHEMA = (@schema)
18
+ AND TABLE_NAME =@table
19
+ AND REFERENCED_TABLE_NAME is not null
20
+ )
21
+ ORDER BY TABLE_NAME, COLUMN_NAME;";
22
+
23
+ var result=new List<FKTable>();
24
+
25
+ using(conn=new MySqlConnection(ConnectionString)){
26
+
27
+ var cmd=new MySqlCommand(fkSQL,conn);
28
+ cmd.Parameters.AddWithValue("@table",tableName);
29
+ cmd.Parameters.AddWithValue("@schema",DatabaseName);
30
+ conn.Open();
31
+ var rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
32
+
33
+ while(rdr.Read()){
34
+ FKTable fk=new FKTable();
35
+ string thisTable=rdr["TABLE_NAME"].ToString();
36
+
37
+ if(tableName.ToLower()==thisTable.ToLower()){
38
+ fk.ThisTable=rdr["TABLE_NAME"].ToString();
39
+ fk.ThisColumn=rdr["COLUMN_NAME"].ToString();
40
+ fk.OtherTable=rdr["REFERENCED_TABLE_NAME"].ToString();
41
+ fk.OtherColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
42
+
43
+ }else{
44
+ fk.ThisTable=rdr["REFERENCED_TABLE_NAME"].ToString();
45
+ fk.ThisColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
46
+ fk.OtherTable=rdr["TABLE_NAME"].ToString();
47
+ fk.OtherColumn=rdr["COLUMN_NAME"].ToString();
48
+
49
+ }
50
+
51
+ fk.OtherClass=Inflector.MakeSingular(CleanUp(fk.OtherTable));
52
+ fk.OtherQueryable=Inflector.MakePlural(fk.OtherClass);
53
+
54
+ result.Add(fk);
55
+ }
56
+
57
+
58
+ }
59
+
60
+ return result;
61
+
62
+
63
+ }
64
+
65
+
66
+ List<Table> LoadTables(){
67
+
68
+ var result=new List<Table>();
69
+
70
+ using(conn=new MySqlConnection(ConnectionString)){
71
+ conn.Open();
72
+
73
+ //this will return everything for the DB
74
+ var schema = conn.GetSchema("COLUMNS");
75
+ conn.Close();
76
+
77
+ //spin through once to get all the tables
78
+ foreach (DataRow row in schema.Rows)
79
+ {
80
+ if(!result.Any(x=>x.Name.Equals(row["TABLE_NAME"].ToString(),StringComparison.InvariantCultureIgnoreCase)))
81
+ {
82
+
83
+ //add it
84
+ Table tbl = new Table();
85
+ tbl.PrimaryKey="";
86
+ tbl.Name = row["TABLE_NAME"].ToString();
87
+ tbl.FKTables=LoadFKTables(tbl.Name);
88
+ tbl.CleanName=CleanUp(tbl.Name);
89
+ tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);
90
+ tbl.QueryableName=Inflector.MakePlural(tbl.ClassName);
91
+ result.Add(tbl);
92
+ }
93
+ }
94
+
95
+ //loop again - but this time pull by table name
96
+ foreach (var item in result) {
97
+ item.Columns=new List<Column>();
98
+ //pull the columns from the schema
99
+ var columns = schema.Select("TABLE_NAME='" + item.Name + "'");
100
+
101
+ foreach (var row in columns) {
102
+ Column col=new Column();
103
+ col.Name=row["COLUMN_NAME"].ToString();
104
+ col.CleanName=CleanUp(col.Name);
105
+ col.DataType=row["DATA_TYPE"].ToString();
106
+ col.IsUnsigned = row["COLUMN_TYPE"].ToString().Contains(" unsigned");
107
+
108
+ <<<<<<< HEAD
109
+ col.SysType=GetSysType(col.DataType, col.IsUnsigned);
110
+ col.DbType=GetDbType(col.DataType, col.IsUnsigned);
111
+
112
+ =======
113
+ /* Pass the information whether Data Type Unsigned or Not **/
114
+ if (row["COLUMN_TYPE"].ToString().Contains("unsigned"))
115
+ {
116
+ col.DbType=GetDbType(col.DataType+" unsigned");
117
+ col.SysType=GetSysType(col.DataType+" unsigned");
118
+ }
119
+ else{
120
+ col.DbType=GetDbType(col.DataType);
121
+ col.SysType=GetSysType(col.DataType);
122
+ }
123
+
124
+ if (TreatTinyint1AsBool && row["COLUMN_TYPE"].ToString() == "tinyint(1)") {
125
+ col.SysType = "bool";
126
+ col.DbType = DbType.Boolean;
127
+ }
128
+
129
+ >>>>>>> b1f15d7a43e63916c03a365b4d260d43390f2689
130
+ col.AutoIncrement=row["EXTRA"].ToString()=="auto_increment";
131
+ col.IsNullable=row["IS_NULLABLE"].ToString()=="YES";
132
+ col.IsPK=row["COLUMN_KEY"].ToString()=="PRI";
133
+
134
+ if(col.IsPK){
135
+ item.PrimaryKey=col.Name ?? "";
136
+ }
137
+
138
+ int.TryParse(row["CHARACTER_MAXIMUM_LENGTH"].ToString(),out col.MaxLength);
139
+
140
+ item.Columns.Add(col);
141
+
142
+ }
143
+ }
144
+ }
145
+
146
+ return result;
147
+ }
148
+
149
+ string GetSysType(string sqlType, bool isUnsigned){
150
+ string sysType="string";
151
+ switch (sqlType) {
152
+ case "bigint unsigned":
153
+ sysType= "ulong";
154
+ break;
155
+ case "bigint":
156
+ if( isUnsigned )
157
+ sysType= "ulong";
158
+ else
159
+ sysType= "long";
160
+ break;
161
+ case "mediumint unsigned":
162
+ case "int unsigned":
163
+ sysType= "uint";
164
+ break;
165
+ case "mediumint":
166
+ case "int":
167
+ if( isUnsigned )
168
+ sysType= "uint";
169
+ else
170
+ sysType= "int";
171
+ break;
172
+ case "smallint unsigned":
173
+ sysType= "ushort";
174
+ break;
175
+ case "smallint":
176
+ if( isUnsigned )
177
+ sysType= "ushort";
178
+ else
179
+ sysType= "short";
180
+ break;
181
+ case "guid":
182
+ sysType= "Guid";
183
+ break;
184
+ case "smalldatetime":
185
+ case "date":
186
+ case "datetime":
187
+ case "timestamp":
188
+ sysType= "DateTime";
189
+ break;
190
+ case "float":
191
+ sysType="double";
192
+ break;
193
+ case "real":
194
+ case "numeric":
195
+ case "smallmoney":
196
+ case "decimal unsigned":
197
+ case "decimal":
198
+ case "money":
199
+ sysType= "decimal";
200
+ break;
201
+ case "tinyint unsigned":
202
+ sysType= "byte";
203
+ break;
204
+ case "tinyint":
205
+ sysType= "sbyte";
206
+ break;
207
+ case "bit":
208
+ sysType= "bool";
209
+ break;
210
+ case "longblob":
211
+ case "image":
212
+ case "binary":
213
+ case "varbinary":
214
+ sysType= "byte[]";
215
+ break;
216
+ }
217
+ return sysType;
218
+ }
219
+ DbType GetDbType(string sqlType, bool isUnsigned){
220
+ switch(sqlType)
221
+ {
222
+ case "varchar":
223
+ return DbType.AnsiString;
224
+ case "nvarchar":
225
+ return DbType.String;
226
+ case "mediumint unsigned":
227
+ case "int unsigned":
228
+ case "integer unsigned":
229
+ return DbType.UInt32;
230
+ case "mediumint":
231
+ case "int":
232
+ case "integer":
233
+ if( isUnsigned )
234
+ return DbType.UInt32;
235
+ else
236
+ return DbType.Int32;
237
+ case "guid":
238
+ return DbType.Guid;
239
+ case "date":
240
+ case "timestamp":
241
+ case "datetime":
242
+ return DbType.DateTime;
243
+ case "bigint unsigned":
244
+ return DbType.UInt64;
245
+ case "bigint":
246
+ if( isUnsigned )
247
+ return DbType.UInt64;
248
+ else
249
+ return DbType.Int64;
250
+ case "binary":
251
+ return DbType.Binary;
252
+ case "bit":
253
+ return DbType.Boolean;
254
+ case "char":
255
+ return DbType.AnsiStringFixedLength;
256
+ case "decimal":
257
+ return DbType.Decimal;
258
+ case "float":
259
+ case "double":
260
+ return DbType.Double;
261
+ case "image":
262
+ return DbType.Binary;
263
+ case "money":
264
+ return DbType.Currency;
265
+ case "nchar":
266
+ return DbType.String;
267
+ case "longtext":
268
+ return DbType.String;
269
+ case "longblob":
270
+ return DbType.Object;
271
+ case "numeric":
272
+ return DbType.Decimal;
273
+ case "real":
274
+ return DbType.Single;
275
+ case "smalldatetime":
276
+ return DbType.DateTime;
277
+ case "smallint unsigned":
278
+ return DbType.UInt16;
279
+ case "smallint":
280
+ if( isUnsigned )
281
+ return DbType.UInt16;
282
+ else
283
+ return DbType.Int16;
284
+ case "smallmoney":
285
+ return DbType.Currency;
286
+ case "sql_variant":
287
+ return DbType.String;
288
+ case "sysname":
289
+ return DbType.String;
290
+ case "text":
291
+ return DbType.AnsiString;
292
+ case "tinyint unsigned":
293
+ return DbType.Byte;
294
+ case "tinyint":
295
+ return DbType.SByte;
296
+ case "varbinary":
297
+ return DbType.Binary;
298
+ default:
299
+ return DbType.AnsiString;
300
+ }
301
+
302
+ }
303
+ #>