Exemplo n.º 1
0
        public IEnumerable <Parameter> GetParameters(Procedure storedProcedure)
        {
            var list = new List <Parameter>();

            using (var connection = _connectionProvider.CreateConnection())
            {
                connection.Open();

                var command = connection.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText =
                    string.Format("SELECT * FROM information_schema.parameters WHERE SPECIFIC_NAME = '{0}';",
                                  storedProcedure.Name);

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        list.Add(new Parameter
                                 (
                                     reader["PARAMETER_NAME"].ToString(),
                                     SqlTypeResolver.GetClrType(reader["DATA_TYPE"].ToString()),
                                     GetParameterDirection(reader["PARAMETER_MODE"].ToString()),
                                     MysqlColumnInfo.GetDbType(reader["DATA_TYPE"].ToString()),
                                     Convert.IsDBNull(reader["CHARACTER_MAXIMUM_LENGTH"]) ? -1 : Convert.ToInt32(reader["CHARACTER_MAXIMUM_LENGTH"])
                                 ));
                    }
                }

                connection.Close();

                return(list);
            }
        }
 protected SqlTemplateBase(string templateId, IOutputTarget outputTarget, TModel model) : base(templateId, outputTarget, model)
 {
     Types = new SqlTypeResolver();
 }