From 2cc36304c5b4ed901a6a44490b970d76a9b86b87 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 13 Oct 2022 10:35:50 +0800 Subject: [PATCH] Synchronization code --- .../Abstract/DbMaintenanceProvider/Methods.cs | 4 ++-- .../QueryableProvider/QueryableProvider.cs | 5 +++-- .../SqlSugar/Interface/IDbMaintenance.cs | 2 +- .../Oracle/SqlBuilder/OracleQueryBuilder.cs | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index f69915b43..298b441f3 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -252,8 +252,8 @@ namespace SqlSugar tableName = this.SqlBuilder.GetTranslationTableName(tableName); this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName)); return true; - } - public virtual bool DropTable(string [] tableName) + } + public virtual bool DropTable(string[] tableName) { foreach (var item in tableName) { diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 75bd14e0c..566bad7e8 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1358,14 +1358,14 @@ namespace SqlSugar var list= this.ToPivotList(columnSelector, rowSelector, dataSelector); return this.Context.Utilities.SerializeObject(list); } - public List ToChildList(Expression> parentIdExpression, object primaryKeyValue,bool isContainOneself = true) + public List ToChildList(Expression> parentIdExpression, object primaryKeyValue, bool isContainOneself = true) { var entity = this.Context.EntityMaintenance.GetEntityInfo(); var pk = GetTreeKey(entity); var list = this.ToList(); return GetChildList(parentIdExpression, pk, list, primaryKeyValue, isContainOneself); } - public async Task> ToChildListAsync(Expression> parentIdExpression, object primaryKeyValue,bool isContainOneself=true) + public async Task> ToChildListAsync(Expression> parentIdExpression, object primaryKeyValue, bool isContainOneself=true) { var entity = this.Context.EntityMaintenance.GetEntityInfo(); var pk = GetTreeKey(entity); @@ -1999,6 +1999,7 @@ namespace SqlSugar { if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer) { + this.QueryBuilder.Offset = "true"; return this.ToPageList(pageIndex, pageSize); } else diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IDbMaintenance.cs index 23ec1a083..e319d971a 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IDbMaintenance.cs @@ -32,7 +32,7 @@ namespace SqlSugar bool CreateIndex(string tableName, string [] columnNames, bool isUnique=false); bool CreateIndex(string tableName, string[] columnNames, string IndexName, bool isUnique = false); bool DropTable(string tableName); - bool DropTable(params string [] tableName); + bool DropTable(params string[] tableName); bool DropTable(); bool DropTable(); bool DropTable(); diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs index dad344f0a..342909a65 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleQueryBuilder.cs @@ -22,6 +22,10 @@ namespace SqlSugar } public override string ToSqlString() { + if (this.Offset == "true") + { + return OffsetPage(); + } var oldTake = Take; var oldSkip = Skip; var isDistinctPage = IsDistinct && (Take > 1 || Skip > 1); @@ -50,6 +54,18 @@ namespace SqlSugar } return result; } + + private string OffsetPage() + { + var skip = this.Skip; + var take = this.Take; + this.Skip = null; + this.Take = null; + this.Offset = null; + var pageSql = $"SELECT * FROM ( SELECT PAGETABLE1.*,ROWNUM PAGEINDEX FROM( { this.ToSqlString() }) PAGETABLE1 WHERE ROWNUM<={skip+take}) WHERE PAGEINDEX>={(skip==0?skip:(skip+1))}"; + return pageSql; + } + public string _ToSqlString() { string oldOrderBy = this.OrderByValue;