Beispiel #1
0
 internal static ProcedureCodeParameter GetParameterClrType(StoreLakeParameterRegistration parameter)
 {
     if (parameter.ParameterDbType == SqlDbType.Structured)
     {
         return(ProcedureCodeParameter.CreateUdt(parameter.ParameterTypeFullName, parameter.StructureTypeSchemaName, parameter.StructureTypeName));
     }
     return(GetParameterClrType(parameter.ParameterDbType, parameter.ParameterTypeFullName));
 }
Beispiel #2
0
        public static ProcedureCodeParameter GetParameterClrType(SqlDbType parameter_ParameterDbType, string parameter_ParameterTypeFullName)
        {
            // https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-mappings
            if (parameter_ParameterDbType == SqlDbType.Structured)
            {
                var name_tokens = ReadSchemaObjectName(1, parameter_ParameterTypeFullName);
                return(ProcedureCodeParameter.CreateUdt(parameter_ParameterTypeFullName, name_tokens.SchemaName, name_tokens.ObjectName));
            }
            if (parameter_ParameterDbType == SqlDbType.Bit)
            {
                return(ProcedureCodeParameter.Create <bool, bool?>(DbType.Boolean));
            }
            if (parameter_ParameterDbType == SqlDbType.NVarChar)
            {
                return(ProcedureCodeParameter.Create <string, string>(DbType.String));
            }
            if (parameter_ParameterDbType == SqlDbType.Int)
            {
                return(ProcedureCodeParameter.Create <int, int?>(DbType.Int32));
            }
            if (parameter_ParameterDbType == SqlDbType.BigInt)
            {
                return(ProcedureCodeParameter.Create <long, long?>(DbType.Int64));
            }
            if (parameter_ParameterDbType == SqlDbType.SmallInt)
            {
                return(ProcedureCodeParameter.Create <short, short?>(DbType.Int16));
            }
            if (parameter_ParameterDbType == SqlDbType.TinyInt)
            {
                return(ProcedureCodeParameter.Create <byte, byte?>(DbType.Byte));
            }
            if (parameter_ParameterDbType == SqlDbType.UniqueIdentifier)
            {
                return(ProcedureCodeParameter.Create <Guid, Guid?>(DbType.Guid));
            }
            if (parameter_ParameterDbType == SqlDbType.Xml)
            {
                return(ProcedureCodeParameter.Create <System.Xml.Linq.XElement, System.Xml.Linq.XElement>(DbType.Xml));
            }
            if (parameter_ParameterDbType == SqlDbType.DateTime)
            {
                return(ProcedureCodeParameter.Create <DateTime, DateTime?>(DbType.DateTime));
            }
            if (parameter_ParameterDbType == SqlDbType.VarBinary)
            {
                return(ProcedureCodeParameter.Create <byte[], byte[]>(DbType.Binary));
            }
            if (parameter_ParameterDbType == SqlDbType.Decimal)
            {
                return(ProcedureCodeParameter.Create <decimal, decimal?>(DbType.Decimal));
            }
            if (parameter_ParameterDbType == SqlDbType.NChar)
            {
                return(ProcedureCodeParameter.Create <string, string>(DbType.StringFixedLength)); // taskmanagement
            }
            if (parameter_ParameterDbType == SqlDbType.Date)
            {
                return(ProcedureCodeParameter.Create <DateTime, DateTime?>(DbType.DateTime));
            }

            throw new NotImplementedException("" + parameter_ParameterDbType);
        }