Compare commits

...

5 Commits

Author SHA1 Message Date
阿妮亚
482fe429b9 !93 1.this?.Context?.Case 不等于判断
Merge pull request !93 from 杜子腾/master
2025-09-09 12:46:42 +00:00
guoshun.du
d4eb924900 1.this?.Context?.Case 不等于判断
2.OceanBaseForOracle和TDSQLForODBC重写Case
2025-09-09 20:40:57 +08:00
阿妮亚
5431701ec6 !90 OceanBaseForOracle和TDSQLForODBC问题修复
Merge pull request !90 from 杜子腾/master
2025-09-09 11:33:46 +00:00
guoshun.du
81eb7a5a3f 1.ExpressionContextCase增加Num属性,用于传递跳过的数据数量。
2.OcaenBaseForOracle 重写 GetLimit,使其支持子查询。
3.TDSQLForPGODBC 重写 GetLimit,使其支持子查询。
4.getMyInt和getMyIntNull,获取数据方式改成GetDecimal,只有OcaenBaseForOracle 使用这两个方法,这是为了支持OcaenBaseForOracle 驱动2.0.9以上,请更新驱动到2.0.9以上
2025-09-09 19:24:19 +08:00
sunkaixuan
96a670465c Update exp to sql 2025-09-09 18:46:30 +08:00
6 changed files with 36 additions and 3 deletions

View File

@@ -16,6 +16,7 @@ namespace SqlSugar.OceanBaseForOracle
public OceanBaseForOracleExpressionContext()
{
base.DbMehtods = new OceanBaseForOracleMethod();
base.Case = new ExpressionContextCase();
}
public override string SqlParameterKeyWord
{
@@ -72,6 +73,16 @@ namespace SqlSugar.OceanBaseForOracle
}
}
}
public override string GetLimit()
{
int num = 1;
if (this.Case?.Num > 1)
{
num = this.Case.Num;
}
return (this.Case?.HasWhere == true ? "AND" : "WHERE") + " ROWNUM=" + num;
}
}
public partial class OceanBaseForOracleMethod : DefaultDbMethod, IDbMethods
{

View File

@@ -8,6 +8,7 @@ namespace SqlSugar.TDSQLForPGODBC
public TDSQLForPGODBCExpressionContext()
{
base.DbMehtods = new TDSQLForPGODBCMethod();
base.Case = new ExpressionContextCase();
}
public override string SqlTranslationLeft
{
@@ -130,6 +131,16 @@ namespace SqlSugar.TDSQLForPGODBC
});
}
}
public override string GetLimit()
{
int num = 1;
if (this.Case.Num > 1)
{
num = this.Case.Num;
}
return "limit " + num;
}
}
public class TDSQLForPGODBCMethod : DefaultDbMethod, IDbMethods
{

View File

@@ -151,7 +151,7 @@ namespace SqlSugar
}
if (dr.GetDataTypeName(i) == "NUMBER")
{
return Convert.ToInt32(dr.GetDouble(i));
return Convert.ToInt32(dr.GetDecimal(i));
}
var result = dr.GetInt32(i);
return result;
@@ -160,7 +160,7 @@ namespace SqlSugar
{
if (dr.GetDataTypeName(i) == "NUMBER")
{
return Convert.ToInt32(dr.GetDouble(i));
return Convert.ToInt32(dr.GetDecimal(i));
}
var result = dr.GetInt32(i);
return result;

View File

@@ -4,10 +4,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
namespace SqlSugar
{
public class ExpressionContextCase
{
public bool IsDateString { get; set; }
public bool HasWhere { get; set; }
public int Num { get; set; } = 1;
}
}

View File

@@ -82,6 +82,11 @@ namespace SqlSugar
}
else if (this.Context.GetLimit() != null)
{
if (this?.Context?.Case != null)
{
this.Context.Case.HasWhere = this.HasWhere;
this.Context.Case.Num = num;
}
return this.Context.GetLimit();
}
else

View File

@@ -67,6 +67,10 @@ namespace SqlSugar
}
else if (this.Context.GetLimit()!=null)
{
if (this?.Context?.Case != null)
{
this.Context.Case.HasWhere = this.HasWhere;
}
return this.Context.GetLimit();
}
else