Skip to content

Commit 7ca313d

Browse files
committed
Synchronization code
1 parent 04e31fc commit 7ca313d

File tree

5 files changed

+85
-2
lines changed

5 files changed

+85
-2
lines changed

Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,11 +653,19 @@ public bool IsUppper
653653
private static void ConvertCreateColumnInfo(DbColumnInfo x)
654654
{
655655
string[] array = new string[] { "int" };
656+
if (x.OracleDataType.HasValue())
657+
{
658+
x.DataType = x.OracleDataType;
659+
}
656660
if (array.Contains(x.DataType?.ToLower()))
657661
{
658662
x.Length = 0;
659663
x.DecimalDigits = 0;
660664
}
665+
if (x.DecimalDigits > 0 && x.DataType?.ToLower()?.IsIn("varchar", "clob", "varchar2", "nvarchar2", "nvarchar") == true)
666+
{
667+
x.DecimalDigits = 0;
668+
}
661669
}
662670
#endregion
663671
}

Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmUpdateBuilder.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ protected override string TomultipleSqlString(List<IGrouping<int, DbColumnInfo>>
2828
var updateTable = string.Format("UPDATE {0} SET", base.GetTableNameStringNoWith);
2929
var setValues = string.Join(",", t.Where(s => !s.IsPrimarykey).Where(s => OldPrimaryKeys == null || !OldPrimaryKeys.Contains(s.DbColumnName)).Select(m => GetOracleUpdateColums(i, m)).ToArray());
3030
var pkList = t.Where(s => s.IsPrimarykey).ToList();
31+
if (this.IsWhereColumns && this.PrimaryKeys?.Any() == true)
32+
{
33+
var whereColumns = pkList.Where(it => this.PrimaryKeys?.Any(p => p.EqualCase(it.PropertyName) || p.EqualCase(it.DbColumnName)) == true).ToList();
34+
if (whereColumns.Any())
35+
{
36+
pkList = whereColumns;
37+
}
38+
}
3139
List<string> whereList = new List<string>();
3240
foreach (var item in pkList)
3341
{

Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,15 @@ protected override string GetTableInfoListSql
8484
cast(obj_description(relfilenode,'pg_class') as varchar) as Description from pg_class c
8585
where relkind = 'r' and c.oid >= 16384 and c.relnamespace != 99 and c.relname not like '%pl_profiler_saved%' order by relname";
8686
}
87-
return @"select cast(relname as varchar) as Name,
87+
var result= @"select cast(relname as varchar) as Name,
8888
cast(obj_description(relfilenode,'pg_class') as varchar) as Description from sys_class c
8989
where relkind = 'r' and c.oid >= 16384 and c.relnamespace != 99 and c.relname not like '%pl_profiler_saved%' order by relname";
90+
91+
if (IsSqlServerModel())
92+
{
93+
result = result.Replace(" as varchar)", " as varchar(max))");
94+
}
95+
return result;
9096
}
9197
}
9298
protected override string GetViewInfoListSql

Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ protected override string TomultipleSqlString(List<IGrouping<int, DbColumnInfo>>
163163
}
164164
if (IsSqlServerModel())
165165
{
166-
if (dbType == "varchar")
166+
if (dbType == "numeric")
167+
{
168+
dbType = "numeric(18,6)";
169+
}
170+
else if (dbType == "varchar")
167171
{
168172
dbType = "varchar(max)";
169173
}

Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLInsertBuilder.cs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,63 @@ public object FormatValue(object value, string name, int i, DbColumnInfo columnI
178178
}
179179
}
180180
}
181+
public override object FormatValue(object value)
182+
{
183+
var N = string.Empty;
184+
if (value == null)
185+
{
186+
return "NULL";
187+
}
188+
else
189+
{
190+
var type = UtilMethods.GetUnderType(value.GetType());
191+
if (type == UtilConstants.DateType)
192+
{
193+
var date = value.ObjToDate();
194+
if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
195+
{
196+
date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
197+
}
198+
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
199+
}
200+
else if (type == UtilConstants.ByteArrayType)
201+
{
202+
string bytesString = "0x" + BitConverter.ToString((byte[])value).Replace("-", "");
203+
return bytesString;
204+
}
205+
else if (type.IsEnum())
206+
{
207+
if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true)
208+
{
209+
return value.ToSqlValue();
210+
}
211+
else
212+
{
213+
return Convert.ToInt64(value);
214+
}
215+
}
216+
else if (type == UtilConstants.BoolType)
217+
{
218+
return value.ObjToBool() ? "1" : "0";
219+
}
220+
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
221+
{
222+
return N + "'" + value.ToString().ToSqlFilter() + "'";
223+
}
224+
else if (type == UtilConstants.DateTimeOffsetType)
225+
{
226+
return FormatDateTimeOffset(value);
227+
}
228+
else if (type == UtilConstants.FloatType)
229+
{
230+
return N + "'" + Convert.ToDouble(value).ToString() + "'";
231+
}
232+
else
233+
{
234+
return N + "'" + value.ToString() + "'";
235+
}
236+
}
237+
}
181238
public override string FormatDateTimeOffset(object value)
182239
{
183240
return "'" + ((DateTimeOffset)value).ToString("o") + "'";

0 commit comments

Comments
 (0)