mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Update Access
This commit is contained in:
parent
ac54f02455
commit
da7bcf441f
@ -222,120 +222,120 @@ namespace OrmTest
|
|||||||
|
|
||||||
private static void DistributedTransactionExample()
|
private static void DistributedTransactionExample()
|
||||||
{
|
{
|
||||||
Console.WriteLine("");
|
//Console.WriteLine("");
|
||||||
Console.WriteLine("#### Distributed TransactionExample Start ####");
|
//Console.WriteLine("#### Distributed TransactionExample Start ####");
|
||||||
SqlSugarClient db = new SqlSugarClient(new List<ConnectionConfig>()
|
//SqlSugarClient db = new SqlSugarClient(new List<ConnectionConfig>()
|
||||||
{
|
//{
|
||||||
new ConnectionConfig(){ ConfigId="1", DbType=DbType.Access, ConnectionString=Config.ConnectionString,InitKeyType=InitKeyType.Attribute,IsAutoCloseConnection=true },
|
// new ConnectionConfig(){ ConfigId="1", DbType=DbType.Access, ConnectionString=Config.ConnectionString,InitKeyType=InitKeyType.Attribute,IsAutoCloseConnection=true },
|
||||||
new ConnectionConfig(){ ConfigId="2", DbType=DbType.Access, ConnectionString=Config.ConnectionString2 ,InitKeyType=InitKeyType.Attribute ,IsAutoCloseConnection=true}
|
// new ConnectionConfig(){ ConfigId="2", DbType=DbType.Access, ConnectionString=Config.ConnectionString2 ,InitKeyType=InitKeyType.Attribute ,IsAutoCloseConnection=true}
|
||||||
});
|
//});
|
||||||
|
|
||||||
//use db1
|
////use db1
|
||||||
db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(Order), typeof(OrderItem));//
|
//db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(Order), typeof(OrderItem));//
|
||||||
db.Insertable(new Order() { Name = "order1", CreateTime = DateTime.Now }).ExecuteCommand();
|
//db.Insertable(new Order() { Name = "order1", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType + ":" + db.Queryable<Order>().Count());
|
//Console.WriteLine(db.CurrentConnectionConfig.DbType + ":" + db.Queryable<Order>().Count());
|
||||||
|
|
||||||
//use db2
|
////use db2
|
||||||
db.ChangeDatabase("2");
|
//db.ChangeDatabase("2");
|
||||||
db.DbMaintenance.CreateDatabase();//Create Database2
|
//db.DbMaintenance.CreateDatabase();//Create Database2
|
||||||
db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(Order), typeof(OrderItem));
|
//db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(Order), typeof(OrderItem));
|
||||||
db.Insertable(new Order() { Name = "order1", CreateTime = DateTime.Now }).ExecuteCommand();
|
//db.Insertable(new Order() { Name = "order1", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType + ":" + db.Queryable<Order>().Count());
|
//Console.WriteLine(db.CurrentConnectionConfig.DbType + ":" + db.Queryable<Order>().Count());
|
||||||
|
|
||||||
// Example 1
|
//// Example 1
|
||||||
Console.WriteLine("Example 1");
|
//Console.WriteLine("Example 1");
|
||||||
try
|
//try
|
||||||
{
|
//{
|
||||||
db.BeginTran();
|
// db.BeginTran();
|
||||||
|
|
||||||
db.ChangeDatabase("1");//use db1
|
// db.ChangeDatabase("1");//use db1
|
||||||
db.Deleteable<Order>().ExecuteCommand();
|
// db.Deleteable<Order>().ExecuteCommand();
|
||||||
Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
|
|
||||||
db.ChangeDatabase("2");//use db2
|
// db.ChangeDatabase("2");//use db2
|
||||||
db.Deleteable<Order>().ExecuteCommand();
|
// db.Deleteable<Order>().ExecuteCommand();
|
||||||
Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
|
|
||||||
throw new Exception();
|
// throw new Exception();
|
||||||
db.CommitTran();
|
// db.CommitTran();
|
||||||
}
|
//}
|
||||||
catch
|
//catch
|
||||||
{
|
//{
|
||||||
db.RollbackTran();
|
// db.RollbackTran();
|
||||||
Console.WriteLine("---Roll back");
|
// Console.WriteLine("---Roll back");
|
||||||
db.ChangeDatabase("1");//use db1
|
// db.ChangeDatabase("1");//use db1
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
|
|
||||||
db.ChangeDatabase("2");//use db2
|
// db.ChangeDatabase("2");//use db2
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Example 2
|
//// Example 2
|
||||||
Console.WriteLine("Example 2");
|
//Console.WriteLine("Example 2");
|
||||||
|
|
||||||
var result = db.UseTran(() =>
|
//var result = db.UseTran(() =>
|
||||||
{
|
//{
|
||||||
|
|
||||||
db.ChangeDatabase("1");//use db1
|
// db.ChangeDatabase("1");//use db1
|
||||||
db.Deleteable<Order>().ExecuteCommand();
|
// db.Deleteable<Order>().ExecuteCommand();
|
||||||
Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
|
|
||||||
db.ChangeDatabase("2");//use db2
|
// db.ChangeDatabase("2");//use db2
|
||||||
db.Deleteable<Order>().ExecuteCommand();
|
// db.Deleteable<Order>().ExecuteCommand();
|
||||||
Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
throw new Exception("");
|
// throw new Exception("");
|
||||||
|
|
||||||
});
|
//});
|
||||||
if (result.IsSuccess == false)
|
//if (result.IsSuccess == false)
|
||||||
{
|
//{
|
||||||
Console.WriteLine("---Roll back");
|
// Console.WriteLine("---Roll back");
|
||||||
db.ChangeDatabase("1");//use db1
|
// db.ChangeDatabase("1");//use db1
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
|
|
||||||
db.ChangeDatabase("2");//use db2
|
// db.ChangeDatabase("2");//use db2
|
||||||
Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
// Console.WriteLine(db.CurrentConnectionConfig.DbType);
|
||||||
Console.WriteLine(db.Queryable<Order>().Count());
|
// Console.WriteLine(db.Queryable<Order>().Count());
|
||||||
}
|
//}
|
||||||
|
|
||||||
// Example 3
|
//// Example 3
|
||||||
Console.WriteLine("Example 3");
|
//Console.WriteLine("Example 3");
|
||||||
Task<DbResult<bool>> result2 = AsyncTranDemo(db);
|
//Task<DbResult<bool>> result2 = AsyncTranDemo(db);
|
||||||
result2.Wait();
|
//result2.Wait();
|
||||||
|
|
||||||
// Example 4
|
//// Example 4
|
||||||
Console.WriteLine("Example 4");
|
//Console.WriteLine("Example 4");
|
||||||
var mysqldb = db.GetConnection("1");//获取ConfigId为1的数据库对象
|
//var mysqldb = db.GetConnection("1");//获取ConfigId为1的数据库对象
|
||||||
var sqlServerdb = db.GetConnection("2");//获取默认对象
|
//var sqlServerdb = db.GetConnection("2");//获取默认对象
|
||||||
Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
//Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
||||||
Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
//Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
||||||
try
|
//try
|
||||||
{
|
//{
|
||||||
db.BeginTran();
|
// db.BeginTran();
|
||||||
|
|
||||||
sqlServerdb.Deleteable<Order>().ExecuteCommand();
|
// sqlServerdb.Deleteable<Order>().ExecuteCommand();
|
||||||
mysqldb.Deleteable<Order>().ExecuteCommand();
|
// mysqldb.Deleteable<Order>().ExecuteCommand();
|
||||||
Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
// Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
||||||
Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
// Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
||||||
|
|
||||||
throw new Exception("");
|
// throw new Exception("");
|
||||||
db.CommitTran();
|
// db.CommitTran();
|
||||||
}
|
//}
|
||||||
catch (Exception)
|
//catch (Exception)
|
||||||
{
|
//{
|
||||||
db.RollbackTran();//数据回滚
|
// db.RollbackTran();//数据回滚
|
||||||
Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
// Console.WriteLine(mysqldb.Queryable<Order>().Count());
|
||||||
Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
// Console.WriteLine(sqlServerdb.Queryable<Order>().Count());
|
||||||
}
|
//}
|
||||||
Console.WriteLine("#### Distributed TransactionExample End ####");
|
//Console.WriteLine("#### Distributed TransactionExample End ####");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -111,17 +111,17 @@ namespace OrmTest
|
|||||||
var getByWhere = db.Queryable<Order>().Where(it => it.Id == 1 || it.Name == "a").ToList();
|
var getByWhere = db.Queryable<Order>().Where(it => it.Id == 1 || it.Name == "a").ToList();
|
||||||
var getByWhere2 = db.Queryable<Order>().Where(it => it.Id == DateTime.Now.Year).ToList();
|
var getByWhere2 = db.Queryable<Order>().Where(it => it.Id == DateTime.Now.Year).ToList();
|
||||||
var getByFuns = db.Queryable<Order>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
|
var getByFuns = db.Queryable<Order>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
|
||||||
var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
|
// var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
|
||||||
var getDicionary = db.Queryable<Order>().ToDictionary(it => it.Id, it => it.Name);
|
var getDicionary = db.Queryable<Order>().ToDictionary(it => it.Id, it => it.Name);
|
||||||
var getDicionaryList = db.Queryable<Order>().ToDictionaryList();
|
var getDicionaryList = db.Queryable<Order>().ToDictionaryList();
|
||||||
var getTest = db.Queryable<Order>().Where(it =>string.IsNullOrWhiteSpace( it.Name)).ToList();
|
var getTest = db.Queryable<Order>().Where(it =>string.IsNullOrWhiteSpace( it.Name)).ToList();
|
||||||
var test01 = db.Queryable<Order>().PartitionBy(it => it.Id).ToList();
|
// var test01 = db.Queryable<Order>().PartitionBy(it => it.Id).ToList();
|
||||||
var q1 = db.Queryable<Order>().Take(1);
|
var q1 = db.Queryable<Order>().Take(1);
|
||||||
var q2 = db.Queryable<Order>().Take(2);
|
var q2 = db.Queryable<Order>().Take(2);
|
||||||
var test02 = db.Union(q1, q2).ToList();
|
//var test02 = db.Union(q1, q2).ToList();
|
||||||
var test03 = db.Queryable<Order>().Take(1).ToList();
|
var test03 = db.Queryable<Order>().Take(1).ToList();
|
||||||
var dp = DateTime.Now;
|
var dp = DateTime.Now;
|
||||||
var test05 = db.Queryable<Order>().Where(it => it.CreateTime.Month== dp.Month).ToList();
|
//var test05 = db.Queryable<Order>().Where(it => it.CreateTime.Month== dp.Month).ToList();
|
||||||
var test06 = db.Queryable<Order>()
|
var test06 = db.Queryable<Order>()
|
||||||
.ToPivotTable(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
.ToPivotTable(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
||||||
|
|
||||||
@ -131,8 +131,8 @@ namespace OrmTest
|
|||||||
var test08 = db.Queryable<Order>()
|
var test08 = db.Queryable<Order>()
|
||||||
.ToPivotJson(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
.ToPivotJson(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
||||||
|
|
||||||
var test09 = db.Queryable<Order>().PartitionBy(it=>it.Id).ToPageListAsync(1,2,0);
|
//var test09 = db.Queryable<Order>().PartitionBy(it=>it.Id).ToPageListAsync(1,2,0);
|
||||||
test09.Wait();
|
//test09.Wait();
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
var test10 = db.Queryable<Order>().ToPageList(1, 2, ref c);
|
var test10 = db.Queryable<Order>().ToPageList(1, 2, ref c);
|
||||||
|
Binary file not shown.
BIN
Src/Asp.Net/AccessTest/Test.laccdb
Normal file
BIN
Src/Asp.Net/AccessTest/Test.laccdb
Normal file
Binary file not shown.
@ -11,5 +11,7 @@ namespace SqlSugar.Access
|
|||||||
{
|
{
|
||||||
public override string SqlTranslationLeft { get { return "["; } }
|
public override string SqlTranslationLeft { get { return "["; } }
|
||||||
public override string SqlTranslationRight { get { return "]"; } }
|
public override string SqlTranslationRight { get { return "]"; } }
|
||||||
|
public override string SqlDateNow { get { return " NOW()"; } }
|
||||||
|
public override string FullSqlDateNow { get { return "SELECT NOW()"; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,12 +14,20 @@ namespace SqlSugar.Access
|
|||||||
public SqlSugarProvider Context { get; set; }
|
public SqlSugarProvider Context { get; set; }
|
||||||
public AccessExpressionContext()
|
public AccessExpressionContext()
|
||||||
{
|
{
|
||||||
base.DbMehtods = new SqlServerMethod();
|
base.DbMehtods = new AccessMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public partial class AccessMethod : DefaultDbMethod, IDbMethods
|
public partial class AccessMethod : DefaultDbMethod, IDbMethods
|
||||||
{
|
{
|
||||||
|
public override string GetRandom()
|
||||||
|
{
|
||||||
|
return " rnd() ";
|
||||||
|
}
|
||||||
|
public override string GetDate()
|
||||||
|
{
|
||||||
|
return " NOW()";
|
||||||
|
}
|
||||||
public override string HasValue(MethodCallExpressionModel model)
|
public override string HasValue(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
if (model.Args[0].Type == UtilConstants.GuidType)
|
if (model.Args[0].Type == UtilConstants.GuidType)
|
||||||
|
@ -23,13 +23,17 @@ namespace SqlSugar.Access
|
|||||||
var isIgnoreOrderBy = this.IsCount && this.PartitionByValue.IsNullOrEmpty();
|
var isIgnoreOrderBy = this.IsCount && this.PartitionByValue.IsNullOrEmpty();
|
||||||
AppendFilter();
|
AppendFilter();
|
||||||
sql = new StringBuilder();
|
sql = new StringBuilder();
|
||||||
if (this.OrderByValue == null && (Skip != null || Take != null)) this.OrderByValue = " ORDER BY GetDate() ";
|
if (this.OrderByValue == null && (Skip != null || Take != null)) this.OrderByValue = " ORDER BY now() ";
|
||||||
if (this.PartitionByValue.HasValue())
|
if (this.PartitionByValue.HasValue())
|
||||||
{
|
{
|
||||||
this.OrderByValue = this.PartitionByValue + this.OrderByValue;
|
this.OrderByValue = this.PartitionByValue + this.OrderByValue;
|
||||||
}
|
}
|
||||||
var isFirst = (Skip == 0 || Skip == null) && Take == 1 && DisableTop == false;
|
var isFirst = (Skip == 0 || Skip == null) && Take == 1 && DisableTop == false;
|
||||||
var isRowNumber = (Skip != null || Take != null) && !isFirst;
|
var isRowNumber = (Skip != null || Take != null) && !isFirst;
|
||||||
|
var isPage = isRowNumber;
|
||||||
|
isRowNumber = false;
|
||||||
|
Skip = null;
|
||||||
|
Take = null;
|
||||||
var rowNumberString = string.Format(",ROW_NUMBER() OVER({0}) AS RowIndex ", GetOrderByString);
|
var rowNumberString = string.Format(",ROW_NUMBER() OVER({0}) AS RowIndex ", GetOrderByString);
|
||||||
string groupByValue = GetGroupByString + HavingInfos;
|
string groupByValue = GetGroupByString + HavingInfos;
|
||||||
string orderByValue = (!isRowNumber && this.OrderByValue.HasValue()) ? GetOrderByString : null;
|
string orderByValue = (!isRowNumber && this.OrderByValue.HasValue()) ? GetOrderByString : null;
|
||||||
@ -42,7 +46,7 @@ namespace SqlSugar.Access
|
|||||||
{
|
{
|
||||||
if (externalOrderBy.IsNullOrEmpty())
|
if (externalOrderBy.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
externalOrderBy = " ORDER BY GetDate() ";
|
externalOrderBy = " ORDER BY now() ";
|
||||||
}
|
}
|
||||||
result = string.Format("SELECT *,ROW_NUMBER() OVER({0}) AS RowIndex2 FROM ({1}) ExternalTable ", GetExternalOrderBy(externalOrderBy), result);
|
result = string.Format("SELECT *,ROW_NUMBER() OVER({0}) AS RowIndex2 FROM ({1}) ExternalTable ", GetExternalOrderBy(externalOrderBy), result);
|
||||||
result = ToPageSql2(result, ExternalPageIndex, ExternalPageSize, true);
|
result = ToPageSql2(result, ExternalPageIndex, ExternalPageSize, true);
|
||||||
@ -52,7 +56,7 @@ namespace SqlSugar.Access
|
|||||||
{
|
{
|
||||||
if (this.OrderByValue.IsNullOrEmpty())
|
if (this.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
result += " ORDER BY GETDATE() ";
|
result += " ORDER BY now() ";
|
||||||
}
|
}
|
||||||
result += this.Offset;
|
result += this.Offset;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user