- 修复 Ado.Query 查询字段重复时报错;#162 #165 #161 - 增加 FreeSql.Provider.MsAccess 支持 Access 数据库操作,已通过 2003/2007 版本测试;

This commit is contained in:
28810
2019-12-24 06:16:52 +08:00
parent d5ed1c8a30
commit a92c279c72
69 changed files with 10380 additions and 207 deletions

View File

@@ -111,6 +111,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -153,6 +154,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -169,6 +171,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -219,6 +222,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -235,6 +239,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -251,6 +256,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -307,6 +313,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -323,6 +330,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -339,6 +347,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -355,6 +364,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -417,6 +427,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -433,6 +444,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -449,6 +461,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -465,6 +478,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -481,6 +495,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -655,7 +670,12 @@ namespace FreeSql.Internal.CommonProvider
if (ret.Tables.Count <= result)
{
dt = ret.Tables.Add();
for (var a = 0; a < dr.FieldCount; a++) dt.Columns.Add(dr.GetName(a));
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
dt.Columns.Add(name);
}
}
object[] values = new object[dt.Columns.Count];
dr.GetValues(values);
@@ -674,7 +694,12 @@ namespace FreeSql.Internal.CommonProvider
ExecuteReader(connection, transaction, dr =>
{
if (ret.Columns.Count == 0)
for (var a = 0; a < dr.FieldCount; a++) ret.Columns.Add(dr.GetName(a));
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
ret.Columns.Add(name);
}
object[] values = new object[ret.Columns.Count];
dr.GetValues(values);
ret.Rows.Add(values);

View File

@@ -35,6 +35,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -78,6 +79,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -94,6 +96,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -145,6 +148,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -161,6 +165,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -177,6 +182,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -234,6 +240,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -250,6 +257,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -266,6 +274,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -282,6 +291,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -345,6 +355,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -361,6 +372,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -377,6 +389,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -393,6 +406,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -409,6 +423,7 @@ namespace FreeSql.Internal.CommonProvider
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dic.ContainsKey(name)) continue;
sbflag.Append(name).Append(":").Append(a).Append(",");
dic.Add(name, a);
}
@@ -585,7 +600,12 @@ namespace FreeSql.Internal.CommonProvider
if (ret.Tables.Count <= result)
{
dt = ret.Tables.Add();
for (var a = 0; a < dr.FieldCount; a++) dt.Columns.Add(dr.GetName(a));
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
dt.Columns.Add(name);
}
}
object[] values = new object[dt.Columns.Count];
for (int a = 0; a < values.Length; a++) if (!await dr.IsDBNullAsync(a)) values[a] = await dr.GetFieldValueAsync<object>(a);
@@ -604,7 +624,12 @@ namespace FreeSql.Internal.CommonProvider
await ExecuteReaderAsync(connection, transaction, async dr =>
{
if (ret.Columns.Count == 0)
for (var a = 0; a < dr.FieldCount; a++) ret.Columns.Add(dr.GetName(a));
for (var a = 0; a < dr.FieldCount; a++)
{
var name = dr.GetName(a);
if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
ret.Columns.Add(name);
}
object[] values = new object[ret.Columns.Count];
for (int a = 0; a < values.Length; a++) if (!await dr.IsDBNullAsync(a)) values[a] = await dr.GetFieldValueAsync<object>(a);
ret.Rows.Add(values);