Synchronization code

This commit is contained in:
sunkaixuan
2022-12-20 17:13:35 +08:00
parent d20313fa1d
commit ec86b1303b
8 changed files with 49 additions and 7 deletions

View File

@@ -37,7 +37,7 @@ namespace SqlSugar
private string GetOracleUpdateColums(int i, DbColumnInfo m)
{
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(IsUppper), FormatValue(i, m.DbColumnName, m.Value));
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(IsUppper), base.GetDbColumn(m,FormatValue(i, m.DbColumnName, m.Value)));
}
public bool IsUppper
{

View File

@@ -428,6 +428,48 @@ namespace SqlSugar
return tableString;
}
public override bool AddColumn(string tableName, DbColumnInfo columnInfo)
{
tableName = this.SqlBuilder.GetTranslationTableName(tableName);
var isAddNotNUll = columnInfo.IsNullable == false && columnInfo.DefaultValue.HasValue();
if (isAddNotNUll)
{
columnInfo = this.Context.Utilities.TranslateCopy(columnInfo);
columnInfo.IsNullable = true;
}
string sql = GetAddColumnSql(tableName, columnInfo);
if (sql != null && columnInfo.ColumnDescription.HasValue() &&!sql.ToLower().Contains("comment"))
{
sql = $"{sql}{" COMMENT '"+ columnInfo.ColumnDescription.ToSqlFilter()+ "' "}";
}
this.Context.Ado.ExecuteCommand(sql);
if (isAddNotNUll)
{
var dtColums = this.Context.Queryable<object>().AS(columnInfo.TableName).Where("1=2")
.Select(this.SqlBuilder.GetTranslationColumnName(columnInfo.DbColumnName)).ToDataTable().Columns.Cast<System.Data.DataColumn>();
var dtColumInfo = dtColums.First(it => it.ColumnName.EqualCase(columnInfo.DbColumnName));
var type = UtilMethods.GetUnderType(dtColumInfo.DataType);
var value = type == UtilConstants.StringType ? (object)"" : Activator.CreateInstance(type);
if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle)
{
value = columnInfo.DefaultValue;
if (value.Equals(""))
{
value = "empty";
}
}
var dt = new Dictionary<string, object>();
dt.Add(columnInfo.DbColumnName, value);
this.Context.Updateable(dt)
.AS(tableName)
.Where($"{columnInfo.DbColumnName} is null ").ExecuteCommand();
columnInfo.IsNullable = false;
UpdateColumn(tableName, columnInfo);
}
return true;
}
protected override string GetSize(DbColumnInfo item)
{
string dataSize = null;

View File

@@ -59,7 +59,7 @@ namespace SqlSugar
{
updateTable.Append(SqlTemplateBatchUnion);
}
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value,it.PropertyName),this.Builder.GetTranslationColumnName(it.DbColumnName)))));
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, base.GetDbColumn(it,FormatValue(it.Value,it.PropertyName)),this.Builder.GetTranslationColumnName(it.DbColumnName)))));
++i;
}
pageIndex++;

View File

@@ -33,7 +33,7 @@ namespace SqlSugar
private string GetOracleUpdateColums(DbColumnInfo m)
{
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(IsUppper), FormatValue(m.Value,m.IsPrimarykey,m.PropertyName));
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(IsUppper), base.GetDbColumn(m,FormatValue(m.Value,m.IsPrimarykey,m.PropertyName)));
}
int i = 0;
public object FormatValue(object value,bool isPrimaryKey,string name)

View File

@@ -168,7 +168,7 @@ namespace SqlSugar
dbType = "varchar";
}
}
return string.Format("CAST({0} AS {1})", FormatValue(it.Value,it.DbColumnName,i,it), dbType);
return string.Format("CAST({0} AS {1})", base.GetDbColumn(it,FormatValue(it.Value,it.DbColumnName,i,it)), dbType);
})) + ")");
++i;

View File

@@ -33,7 +33,7 @@ namespace SqlSugar
private string GetOracleUpdateColums(int i, DbColumnInfo m, bool iswhere)
{
return string.Format(" \"{0}\"={1}", m.DbColumnName.ToUpper(), FormatValue(i, m.DbColumnName, m.Value, iswhere));
return string.Format(" \"{0}\"={1}", m.DbColumnName.ToUpper(),base.GetDbColumn(m, FormatValue(i, m.DbColumnName, m.Value, iswhere)));
}
public object FormatValue(int i, string name, object value, bool iswhere)

View File

@@ -42,7 +42,7 @@ namespace SqlSugar
{
updateTable.Append(SqlTemplateBatchUnion);
}
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(base.SqlTemplateBatchSelect, GetValue(it), Builder.GetTranslationColumnName(it.DbColumnName)))));
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(base.SqlTemplateBatchSelect,base.GetDbColumn(it,GetValue(it)), Builder.GetTranslationColumnName(it.DbColumnName)))));
++i;
}
pageIndex++;

View File

@@ -32,7 +32,7 @@ namespace SqlSugar
private string GetOracleUpdateColums(int i,DbColumnInfo m,bool iswhere)
{
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(), FormatValue(i,m.DbColumnName,m.Value,iswhere));
return string.Format("\"{0}\"={1}", m.DbColumnName.ToUpper(),base.GetDbColumn(m, FormatValue(i,m.DbColumnName,m.Value,iswhere)));
}
public object FormatValue(int i,string name,object value,bool iswhere)