Exemplo n.º 1
0
        /// <summary>
        /// Creates a new <see cref="AnyTableSqlParameter"/> for describing a parameter of the table valued function <paramref name="parent"/>.  This is public so that
        /// it can be used for later synchronization as well as initial import.
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="discoveredParameter"></param>
        internal AnyTableSqlParameter CreateParameter(ITableInfo parent, DiscoveredParameter discoveredParameter)
        {
            var created = new AnyTableSqlParameter(_repository, parent, GetParamaterDeclarationSQL(discoveredParameter));

            ParametersCreated.Add(created);
            return(created);
        }
Exemplo n.º 2
0
        public override DiscoveredParameter[] DiscoverTableValuedFunctionParameters(DbConnection connection, DiscoveredTableValuedFunction discoveredTableValuedFunction, DbTransaction transaction)
        {
            List <DiscoveredParameter> toReturn = new List <DiscoveredParameter>();

            string query =
                @"select 
sys.parameters.name AS name,
sys.types.name AS TYPE_NAME,
sys.parameters.max_length AS LENGTH,
sys.types.collation_name AS COLLATION_NAME,
sys.parameters.scale AS SCALE,
sys.parameters.precision AS PRECISION
 from 
sys.parameters 
join
sys.types on sys.parameters.user_type_id = sys.types.user_type_id
where object_id = OBJECT_ID('" + GetObjectName(discoveredTableValuedFunction) + "')";

            using (DbCommand cmd = discoveredTableValuedFunction.GetCommand(query, connection))
            {
                cmd.Transaction = transaction;

                using (var r = cmd.ExecuteReader())
                {
                    while (r.Read())
                    {
                        DiscoveredParameter toAdd = new DiscoveredParameter(r["name"].ToString());
                        toAdd.DataType = new DiscoveredDataType(r, GetSQLType_FromSpColumnsResult(r), null);
                        toReturn.Add(toAdd);
                    }
                }
            }

            return(toReturn.ToArray());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a parameter declaration SQL for the given <paramref name="parameter"/> e.g. if the parameter is @myVar varchar(10) then the declare SQL might be
        /// DECLARE @myVar as varchar(10);.
        ///
        /// <para><seealso cref="IQuerySyntaxHelper.GetParameterDeclaration(string,string)"/></para>
        /// </summary>
        internal string GetParamaterDeclarationSQL(DiscoveredParameter parameter)
        {
            var syntaxHelper = _tableValuedFunction.Database.Server.GetQuerySyntaxHelper();

            return(syntaxHelper.GetParameterDeclaration(parameter.ParameterName, parameter.DataType.SQLType));
        }