From 17ec5dba52f4d0f3aa713fc83eb395cb818e3e0d Mon Sep 17 00:00:00 2001
From: sunkaixuan <610262374@qq.com>
Date: Sat, 27 Aug 2022 17:49:11 +0800
Subject: [PATCH] Update Gbase
---
Src/Asp.NetCore2/GbaseTest/Config.cs | 6 +-
.../GbaseTest/Demo/Demo0_SqlSugarClient.cs | 1 +
.../GBase/CodeFirst/GBaseCodeFirst.cs | 5 +-
.../GBase/DbMaintenance/GBaseDbMaintenance.cs | 4 +
.../SqlSugar.GBaseCore/GBase/GBaseProvider.cs | 112 +++++++++++++++++-
.../GBase/SqlBuilder/GBaseBuilder.cs | 30 +++++
.../GBase/SqlBuilder/GBaseInsertBuilder.cs | 108 ++++++++++++++++-
7 files changed, 251 insertions(+), 15 deletions(-)
diff --git a/Src/Asp.NetCore2/GbaseTest/Config.cs b/Src/Asp.NetCore2/GbaseTest/Config.cs
index 63863c796..dc3a9dfee 100644
--- a/Src/Asp.NetCore2/GbaseTest/Config.cs
+++ b/Src/Asp.NetCore2/GbaseTest/Config.cs
@@ -16,16 +16,16 @@ namespace OrmTest
/// Account have permission to create database
/// 用有建库权限的数据库账号
///
- public static string ConnectionString = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb1;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
+ public static string ConnectionString = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
///
/// Account have permission to create database
/// 用有建库权限的数据库账号
///
- public static string ConnectionString2 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb2;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
+ public static string ConnectionString2 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
///
/// Account have permission to create database
/// 用有建库权限的数据库账号
///
- public static string ConnectionString3 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb3;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
+ public static string ConnectionString3 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8";
}
}
diff --git a/Src/Asp.NetCore2/GbaseTest/Demo/Demo0_SqlSugarClient.cs b/Src/Asp.NetCore2/GbaseTest/Demo/Demo0_SqlSugarClient.cs
index e5200ed5f..d0f198f49 100644
--- a/Src/Asp.NetCore2/GbaseTest/Demo/Demo0_SqlSugarClient.cs
+++ b/Src/Asp.NetCore2/GbaseTest/Demo/Demo0_SqlSugarClient.cs
@@ -79,6 +79,7 @@ from systables a
left join syscomments b on b.tabname = a.tabname
where a.tabtype in ('T', 'V') and not (a.tabname like 'sys%') AND a.tabname <>'dual'");
+
//Create tables
db.CodeFirst.InitTables(typeof(OrderItem),typeof(Order));
var id = db.Insertable(new Order() { Name = "order1", CustomId = 1, Price = 0, CreateTime = DateTime.Now }).ExecuteReturnIdentity();
diff --git a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/CodeFirst/GBaseCodeFirst.cs b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/CodeFirst/GBaseCodeFirst.cs
index c932243da..ff81d9a5f 100644
--- a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/CodeFirst/GBaseCodeFirst.cs
+++ b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/CodeFirst/GBaseCodeFirst.cs
@@ -6,9 +6,10 @@ namespace SqlSugar.GBase
{
public class GBaseCodeFirst:CodeFirstProvider
{
- protected override void ExistLogicEnd(List dbColumns)
+ public virtual bool IsNoTran { get; set; } = true;
+ public override void ExistLogic(EntityInfo entityInfo)
{
-
+ this.Context.Ado.ExecuteCommand("select '不支持修改表' from dual ");
}
protected override string GetTableName(EntityInfo entityInfo)
{
diff --git a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/DbMaintenance/GBaseDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/DbMaintenance/GBaseDbMaintenance.cs
index 0b787ae13..c3d429c22 100644
--- a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/DbMaintenance/GBaseDbMaintenance.cs
+++ b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/DbMaintenance/GBaseDbMaintenance.cs
@@ -377,6 +377,10 @@ where a.tabtype in ('V') and not (a.tabname like 'sys%') AND a.tabname <>'dual'
public override bool CreateDatabase(string databaseName, string databaseDirectory = null)
{
throw new NotSupportedException();
+ }
+ public override void AddDefaultValue(EntityInfo entityInfo)
+ {
+
}
public override bool CreateTable(string tableName, List columns, bool isCreatePrimaryKey = true)
{
diff --git a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/GBaseProvider.cs b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/GBaseProvider.cs
index 1b95f9e7c..75b881bc3 100644
--- a/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/GBaseProvider.cs
+++ b/Src/Asp.NetCore2/SqlSugar.GBaseCore/GBase/GBaseProvider.cs
@@ -7,6 +7,8 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Data.Odbc;
+using System.Text.RegularExpressions;
+
namespace SqlSugar.GBase
{
public class GBaseProvider : AdoProvider
@@ -34,6 +36,96 @@ namespace SqlSugar.GBase
base._DbConnection = value;
}
}
+
+ public string SplitCommandTag => UtilConstants.ReplaceCommaKey.Replace("{", "").Replace("}", "");
+
+
+ public override object GetScalar(string sql, params SugarParameter[] parameters)
+ {
+ if (sql == null) throw new Exception("sql is null");
+ if (sql.IndexOf(this.SplitCommandTag) > 0)
+ {
+ var sqlParts = Regex.Split(sql, this.SplitCommandTag).Where(it => !string.IsNullOrEmpty(it)).ToList();
+ object result = 0;
+ foreach (var item in sqlParts)
+ {
+ if (item.TrimStart('\r').TrimStart('\n') != "")
+ {
+ result = base.GetScalar(item, parameters);
+ }
+ }
+ return result;
+ }
+ else
+ {
+ return base.GetScalar(sql, parameters);
+ }
+ }
+ public override async Task