Update 达梦

This commit is contained in:
sunkaixuan 2022-08-06 19:21:11 +08:00
parent dbc7aec64b
commit c8b56342fc

View File

@ -16,23 +16,28 @@ namespace SqlSugar
public DmProvider() { public DmProvider() {
this.FormatSql = sql => this.FormatSql = sql =>
{ {
var guid = Guid.NewGuid();
sql = sql.Replace("+@", "+:"); sql = sql.Replace("+@", "+:");
sql = sql.Replace("select @@identity", guid.ToString());
if (sql.HasValue() && sql.Contains("@")) if (sql.HasValue() && sql.Contains("@"))
{ {
var exceptionalCaseInfo = Regex.Matches(sql, @"\'.*?\@.*?\'| [\.,\w]+\@[\.,\w]+ | [\.,\w]+\@[\.,\w]+"); var exceptionalCaseInfo = Regex.Matches(sql, @"\'[^\=]*?\@.*?\'|[\.,\w]+\@[\.,\w]+ | [\.,\w]+\@[\.,\w]+|[\.,\w]+\@[\.,\w]+ |\d+\@\d|\@\@");
if (exceptionalCaseInfo != null) if (exceptionalCaseInfo != null)
{ {
foreach (var item in exceptionalCaseInfo.Cast<Match>()) foreach (var item in exceptionalCaseInfo.Cast<Match>())
{ {
if (item.Value != null && item.Value.IndexOf(",") == 1 && Regex.IsMatch(item.Value, @"^ \,\@\w+$"))
{
break;
}
else if (item.Value != null && Regex.IsMatch(item.Value.Trim(), @"^\w+\,\@\w+\,$"))
{
break;
}
sql = sql.Replace(item.Value, item.Value.Replace("@", UtilConstants.ReplaceKey)); sql = sql.Replace(item.Value, item.Value.Replace("@", UtilConstants.ReplaceKey));
} }
} }
sql = sql.Replace("@", ":"); sql = sql.Replace("@", ":");
sql = sql.Replace(UtilConstants.ReplaceKey, "@"); sql = sql.Replace(UtilConstants.ReplaceKey, "@");
} }
sql = sql.Replace(guid.ToString(), "select @@identity");
return sql; return sql;
}; };
} }