Update GBase

This commit is contained in:
sunkaixuan 2022-08-28 13:25:46 +08:00
parent e3a719c349
commit 8f659c618a
4 changed files with 93 additions and 3 deletions

View File

@ -8,6 +8,7 @@ namespace GbaseTest
static void Main(string[] args)
{
Demo0_SqlSugarClient.Init();
Demo1_Queryable.Init();
Console.WriteLine("Hello World!");
}
}

View File

@ -41,6 +41,51 @@ namespace SqlSugar.GBase
public override object GetScalar(string sql, params SugarParameter[] parameters)
{
if (this.Context.Ado.Transaction != null)
{
return _GetScalar(sql, parameters);
}
else
{
try
{
this.Context.Ado.BeginTran();
var result = _GetScalar(sql, parameters);
this.Context.Ado.CommitTran();
return result;
}
catch (Exception ex)
{
this.Context.Ado.RollbackTran();
throw ex;
}
}
}
public override async Task<object> GetScalarAsync(string sql, params SugarParameter[] parameters)
{
if (this.Context.Ado.Transaction != null)
{
return await GetScalarAsync(sql, parameters);
}
else
{
try
{
this.Context.Ado.BeginTran();
var result =await GetScalarAsync(sql, parameters);
this.Context.Ado.CommitTran();
return result;
}
catch (Exception ex)
{
this.Context.Ado.RollbackTran();
throw ex;
}
}
}
private object _GetScalar(string sql, SugarParameter[] parameters)
{
if (sql == null) throw new Exception("sql is null");
if (sql.IndexOf(this.SplitCommandTag) > 0)
@ -51,7 +96,7 @@ namespace SqlSugar.GBase
{
if (item.TrimStart('\r').TrimStart('\n') != "")
{
result = base.GetScalar(item, parameters);
result = base.GetScalar(item, parameters);
}
}
return result;
@ -61,7 +106,7 @@ namespace SqlSugar.GBase
return base.GetScalar(sql, parameters);
}
}
public override async Task<object> GetScalarAsync(string sql, params SugarParameter[] parameters)
private async Task<object> _GetScalarAsync(string sql, SugarParameter[] parameters)
{
if (sql == null) throw new Exception("sql is null");
if (sql.IndexOf(this.SplitCommandTag) > 0)

View File

@ -26,7 +26,7 @@ namespace SqlSugar.GBase
{
get
{
return "select systimestamp from dual";
return "select sysdate from dual";
}
}
public override string GetTranslationTableName(string name)

View File

@ -22,6 +22,28 @@ namespace SqlSugar.GBase
}
public partial class GBaseMethod : DefaultDbMethod, IDbMethods
{
public override string Length(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
return string.Format(" LENGTH({0}) ", parameter.MemberName);
}
public override string IsNull(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
var parameter1 = model.Args[1];
return string.Format("NVL({0},{1})", parameter.MemberName, parameter1.MemberName);
}
public override string MergeString(params string[] strings)
{
return string.Join("||", strings);
}
public override string GetRandom()
{
return " SYS_GUID() ";
}
public override string GetForXmlPath()
{
return " FOR XML PATH('')),1,len(N','),'') ";
@ -61,5 +83,27 @@ namespace SqlSugar.GBase
return string.Format("( {0}<>'' AND {0} IS NOT NULL )", parameter.MemberName);
}
}
public override string CharIndex(MethodCallExpressionModel model)
{
return string.Format("instr ({0},{1},1,1) ", model.Args[0].MemberName, model.Args[1].MemberName);
}
public override string Contains(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
var parameter2 = model.Args[1];
return string.Format(" ({0} like '%'||{1}||'%') ", parameter.MemberName, parameter2.MemberName);
}
public override string StartsWith(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
var parameter2 = model.Args[1];
return string.Format(" ({0} like {1}||'%') ", parameter.MemberName, parameter2.MemberName);
}
public override string EndsWith(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
var parameter2 = model.Args[1];
return string.Format(" ({0} like '%'||{1}) ", parameter.MemberName, parameter2.MemberName);
}
}
}