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(); }