mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-24 07:22:57 +08:00
Update MySqlConnector
This commit is contained in:
parent
e541e699dc
commit
7785b9d203
@ -34,7 +34,8 @@ namespace SqlSugar.MySqlConnector
|
|||||||
CASE WHEN is_nullable = 'YES'
|
CASE WHEN is_nullable = 'YES'
|
||||||
THEN true ELSE false END AS `IsNullable`,
|
THEN true ELSE false END AS `IsNullable`,
|
||||||
numeric_scale as Scale,
|
numeric_scale as Scale,
|
||||||
numeric_scale as DecimalDigits
|
numeric_scale as DecimalDigits,
|
||||||
|
LOCATE( 'unsigned',COLUMN_type ) >0 as IsUnsigned
|
||||||
FROM
|
FROM
|
||||||
Information_schema.columns where TABLE_NAME='{0}' and TABLE_SCHEMA=(select database()) ORDER BY ordinal_position";
|
Information_schema.columns where TABLE_NAME='{0}' and TABLE_SCHEMA=(select database()) ORDER BY ordinal_position";
|
||||||
return sql;
|
return sql;
|
||||||
@ -274,6 +275,23 @@ namespace SqlSugar.MySqlConnector
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Methods
|
#region Methods
|
||||||
|
public override bool IsAnyColumnRemark(string columnName, string tableName)
|
||||||
|
{
|
||||||
|
var isAny=this.Context.DbMaintenance.GetColumnInfosByTableName(tableName, false)
|
||||||
|
.Any(it => it.ColumnDescription.HasValue() && it.DbColumnName.ToLower()==columnName.ToLower());
|
||||||
|
return isAny;
|
||||||
|
}
|
||||||
|
public override bool AddColumnRemark(string columnName, string tableName, string description)
|
||||||
|
{
|
||||||
|
//base.AddColumnRemark(columnName, tableName, description);
|
||||||
|
var message= @"db.DbMaintenance.UpdateColumn(""tablename"", new DbColumnInfo()
|
||||||
|
{{
|
||||||
|
DataType = ""VARCHAR(30) NOT NULL COMMENT 'xxxxx'"",
|
||||||
|
DbColumnName = ""columnname""
|
||||||
|
}})" ;
|
||||||
|
Check.Exception(true,"MySql no support AddColumnRemark , use " + message);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///by current connection string
|
///by current connection string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -57,9 +57,16 @@ namespace SqlSugar.MySqlConnector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (MySqlException ex)
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (ex.Message == "The used command is not allowed with this MySQL version")
|
||||||
|
{
|
||||||
|
Check.ExceptionEasy("connection string add : AllowLoadLocalInfile=true", "BulkCopy MySql连接字符串需要添加 AllowLoadLocalInfile=true; 添加后如果还不行Mysql数据库执行一下 SET GLOBAL local_infile=1 ");
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
CloseDb();
|
CloseDb();
|
||||||
|
@ -27,7 +27,8 @@ namespace SqlSugar.MySqlConnector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public override object FormatValue(object value)
|
int i = 0;
|
||||||
|
public object FormatValue(object value,string name)
|
||||||
{
|
{
|
||||||
var n = "N";
|
var n = "N";
|
||||||
if (this.Context.CurrentConnectionConfig.MoreSettings != null && this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar)
|
if (this.Context.CurrentConnectionConfig.MoreSettings != null && this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar)
|
||||||
@ -44,9 +45,9 @@ namespace SqlSugar.MySqlConnector
|
|||||||
if (type == UtilConstants.DateType)
|
if (type == UtilConstants.DateType)
|
||||||
{
|
{
|
||||||
var date = value.ObjToDate();
|
var date = value.ObjToDate();
|
||||||
if (date < Convert.ToDateTime("1900-1-1"))
|
if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
|
||||||
{
|
{
|
||||||
date = Convert.ToDateTime("1900-1-1");
|
date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
|
||||||
}
|
}
|
||||||
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
||||||
}
|
}
|
||||||
@ -72,7 +73,10 @@ namespace SqlSugar.MySqlConnector
|
|||||||
}
|
}
|
||||||
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
||||||
{
|
{
|
||||||
return n+"'" + GetString(value).ToSqlFilter() + "'";
|
++i;
|
||||||
|
var parameterName = this.Builder.SqlParameterKeyWord + name + i;
|
||||||
|
this.Parameters.Add(new SugarParameter(parameterName, value));
|
||||||
|
return parameterName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -102,6 +106,7 @@ namespace SqlSugar.MySqlConnector
|
|||||||
if (isSingle)
|
if (isSingle)
|
||||||
{
|
{
|
||||||
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
|
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
|
||||||
|
ActionMinDate();
|
||||||
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
|
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -115,7 +120,7 @@ namespace SqlSugar.MySqlConnector
|
|||||||
foreach (var item in groupList)
|
foreach (var item in groupList)
|
||||||
{
|
{
|
||||||
batchInsetrSql.Append("(");
|
batchInsetrSql.Append("(");
|
||||||
insertColumns = string.Join(",", item.Select(it => FormatValue(it.Value)));
|
insertColumns = string.Join(",", item.Select(it => FormatValue(it.Value,it.PropertyName)));
|
||||||
batchInsetrSql.Append(insertColumns);
|
batchInsetrSql.Append(insertColumns);
|
||||||
if (groupList.Last() == item)
|
if (groupList.Last() == item)
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ namespace SqlSugar.MySqlConnector
|
|||||||
{
|
{
|
||||||
updateTable.Append(SqlTemplateBatchUnion);
|
updateTable.Append(SqlTemplateBatchUnion);
|
||||||
}
|
}
|
||||||
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value),this.Builder.GetTranslationColumnName(it.DbColumnName)))));
|
updateTable.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value,it.PropertyName),this.Builder.GetTranslationColumnName(it.DbColumnName)))));
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
pageIndex++;
|
pageIndex++;
|
||||||
@ -89,7 +89,8 @@ namespace SqlSugar.MySqlConnector
|
|||||||
}
|
}
|
||||||
return batchUpdateSql.ToString();
|
return batchUpdateSql.ToString();
|
||||||
}
|
}
|
||||||
public override object FormatValue(object value)
|
int i = 0;
|
||||||
|
public object FormatValue(object value,string name)
|
||||||
{
|
{
|
||||||
var n = "N";
|
var n = "N";
|
||||||
if (this.Context.CurrentConnectionConfig.MoreSettings != null&&this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar)
|
if (this.Context.CurrentConnectionConfig.MoreSettings != null&&this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar)
|
||||||
@ -106,9 +107,9 @@ namespace SqlSugar.MySqlConnector
|
|||||||
if (type == UtilConstants.DateType)
|
if (type == UtilConstants.DateType)
|
||||||
{
|
{
|
||||||
var date = value.ObjToDate();
|
var date = value.ObjToDate();
|
||||||
if (date < Convert.ToDateTime("1900-1-1"))
|
if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig))
|
||||||
{
|
{
|
||||||
date = Convert.ToDateTime("1900-1-1");
|
date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig);
|
||||||
}
|
}
|
||||||
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";
|
||||||
}
|
}
|
||||||
@ -142,7 +143,10 @@ namespace SqlSugar.MySqlConnector
|
|||||||
}
|
}
|
||||||
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
else if (type == UtilConstants.StringType || type == UtilConstants.ObjType)
|
||||||
{
|
{
|
||||||
return n+"'" + GetString(value).ToSqlFilter() + "'";
|
++i;
|
||||||
|
var parameterName = this.Builder.SqlParameterKeyWord + name + i;
|
||||||
|
this.Parameters.Add(new SugarParameter(parameterName, value));
|
||||||
|
return parameterName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -16,7 +16,21 @@ namespace SqlSugar.MySqlConnector
|
|||||||
{
|
{
|
||||||
public class UtilMethods
|
public class UtilMethods
|
||||||
{
|
{
|
||||||
|
internal static DateTime GetMinDate(ConnectionConfig currentConnectionConfig)
|
||||||
|
{
|
||||||
|
if (currentConnectionConfig.MoreSettings == null)
|
||||||
|
{
|
||||||
|
return Convert.ToDateTime("1900-01-01");
|
||||||
|
}
|
||||||
|
else if (currentConnectionConfig.MoreSettings.DbMinDate == null)
|
||||||
|
{
|
||||||
|
return Convert.ToDateTime("1900-01-01");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return currentConnectionConfig.MoreSettings.DbMinDate.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
internal static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime)
|
internal static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime)
|
||||||
{
|
{
|
||||||
if (dateTime.Offset.Equals(TimeSpan.Zero))
|
if (dateTime.Offset.Equals(TimeSpan.Zero))
|
||||||
|
Loading…
Reference in New Issue
Block a user