ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL type 'datetimeoffset' is not registered

2021-06-25 16:33:52  阅读:237  来源: 互联网

标签:datetimeoffset DataEngine dataType type registered SQL DataTypeManager CMS


System.NotSupportedException: [DataTypeManager.GetFieldType]: SQL type 'datetimeoffset' is not registered, register the type with method RegisterDataTypes(...)
at CMS.DataEngine.DataTypeManager.GetFieldType(String sqlType, Int32 size, Boolean throwException)
at CMS.DataEngine.FieldBase`1.LoadFromTableData(DataRow row, Boolean isPrimary, Boolean isSystem)
at CMS.FormEngine.FormFieldInfo.LoadFromTableData(DataRow row, Boolean isPrimary, Boolean isSystem)
at CMS.DataEngine.DataDefinition.LoadFromDataStructure(String tableName, TableManager manager, Boolean isSystem)
at CMS.DataEngine.TableManager.GetDatabaseFields(String tableName)
at CMS.DataEngine.TableManager.GetOldFields(String tableName, String definition, Boolean loadOldDefinition)
at CMS.DataEngine.TableManager.UpdateTableByDefinition(UpdateTableParameters parameters)
at CMS.DataEngine.DataClassInfoProvider.EnsureDatabaseStructure(DataClassInfo classInfo, Boolean updateSystemFields)
at CMS.DataEngine.DataClassInfoProvider.SetDataClassInfoInternal(DataClassInfo infoObj)
at CMS.DataEngine.DataClassInfoProviderBase`1.SetDataClassInfo(DataClassInfo infoObj)
at CMS.DataEngine.DataClassInfo.SetObject()
at CMS.DataEngine.BaseInfo.Update()

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Returns form field data type from database column data type.
/// Some sql types map to multiple field types that differ by size, e.g. nvarchar has more field data types that differ by size.
/// Specify size to get more accurate result. By default max size for given sql type is used.
/// </summary>
/// <param name="sqlType">Database column data type</param>
/// <param name="size">Specify the size of sql type to get accurate result</param>
/// <param name="throwException">Indicates if exception should be thrown for unsupported SQL data type</param>
// Token: 0x06000903 RID: 2307 RVA: 0x0001BC38 File Offset: 0x0001AC38
public static string GetFieldType(string sqlType, int size = -1, bool throwException = false)
{
    DataType dataType = DataTypeManager.GetDataType(TypeEnum.SQL, sqlType);
    if (dataType == null)
    {
        if (throwException)
        {
            throw new NotSupportedException("[DataTypeManager.GetFieldType]: SQL type '" + sqlType + "' is not registered, register the type with method RegisterDataTypes(...)");
        }
        return "";
    }
    else
    {
        if (dataType.FieldType == "text" && size == -1)
        {
            return "longtext";
        }
        return dataType.FieldType;
    }
}

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Gets the data type settings by its SQL type
/// </summary>
/// <param name="typeEnum"></param>
/// <param name="typeValue">SQL type</param>
// Token: 0x06000909 RID: 2313 RVA: 0x0001BDDC File Offset: 0x0001ADDC
public static DataType GetDataType(TypeEnum typeEnum, string typeValue)
{
    DataType dataType = null;
    switch (typeEnum)
    {
    case TypeEnum.SQL:
        dataType = DataTypeManager.DataTypesBySqlType[typeValue];
        if (dataType == null)
        {
            int num = typeValue.IndexOf("(");
            if (num > 0)
            {
                typeValue = typeValue.Substring(0, num);
            }
            dataType = DataTypeManager.DataTypesBySqlType[typeValue];
        }
        break;
    case TypeEnum.Field:
        dataType = DataTypeManager.DataTypesByFieldType[typeValue];
        break;
    case TypeEnum.Schema:
        dataType = DataTypeManager.DataTypesBySchemaType[typeValue];
        break;
    }
    return dataType;
}

 

// CMS.DataEngine.DataTypeManager
/// <summary>
/// Registers the given data type to the system
/// </summary>
// Token: 0x060008FB RID: 2299 RVA: 0x0001B1A5 File Offset: 0x0001A1A5
public static void RegisterDataTypes(params DataType[] types)
{
    DataTypeManager.EnsureSystemTypes();
    DataTypeManager.RegisterDataTypesInternal(false, types);
}

 

标签:datetimeoffset,DataEngine,dataType,type,registered,SQL,DataTypeManager,CMS
来源: https://www.cnblogs.com/chucklu/p/14931494.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有