‫Bem vindo de volta.
‫Neste vídeo, vamos adicionar o resto da nossa interface de usuário e vamos adicionar uma funcionalidade
‫por enquanto, que vai excluir o ZUS.
‫Então, vamos fazer isso.
‫Como você pode ver, é assim que a interface deve ser mais ou menos parecida.
‫E vamos construí-lo quase da mesma maneira.
‫Poderíamos construí-lo da mesma forma, digitando as mesmas informações aqui na parte inferior.
‫Mas isso é mais sobre arrastar e soltar para que possamos executar no código Haskell que precisamos ou, em geral, o código
‫de banco de dados que precisamos em C Sharp.
‫Em primeiro lugar, vamos abrir a caixa de ferramentas para que possamos ver o que precisamos e
‫os botões.
‫E vou arrastar um botão bem aqui assim com um pouco de distância.
‫E este botão deve dizer algo como excluir conteúdo, então irei realmente copiar esse botão, copiar e colar,
‫irei arrastá-lo para perto dele.
‫E este foi remover animal porque não o estamos excluindo, mas apenas removendo.
‫E o Nimo e este aqui não deletar o fazem contemplativamente, diga-se de passagem.
‫Portanto, também excluímos e removemos o animal, agora copie e cole.
‫Vou colocá-lo bem aqui, copiar e colar novamente.
‫Na verdade, basta criar os botões antes de renomeá-los e aqui.
‫E então outro embaixo aqui e o último em cima bem ali.
‫Então, talvez devêssemos arrastar tudo um pouco mais para baixo assim, para que haja espaço suficiente para o botão de
‫exclusão.
‫E este pode ser assim.
‫Tudo bem, então agora o que podemos fazer também é arrastar esses dois um pouco para baixo também para que
‫as listas fiquem na mesma altura que a do lado direito.
‫Bem, está tudo bem, não se trata de perfeita, uma interface de usuário perfeita aqui, trata-se de outros tópicos, como você
‫sabe.
‫OK, então quinhentos é demais para 50.
‫Deve ficar bem.
‫E agora, ano, vamos olhar para seiscentos.
‫Isso ainda é muito.
‫Ou seis.
‫Vinte e cinco.
‫Seiscentos deve ser um pouco melhor.
‫Talvez cinco e oitenta ou algo assim.
‫OK, agora todos os botões estão disponíveis.
‫A janela principal está boa.
‫Poderíamos até mudar o nome do nosso título.
‫Vamos torná-lo um administrador do zoológico.
‫Tudo bem.
‫Temos essa lista, o zoológico principal.
‫Agora podemos alterar todos os conteúdos dos botões.
‫Então aquele estava no zoológico.
‫Aquele é o zoológico de atualização.
‫Na verdade, aquele não estava lá para haver um animal porque eles não estão na ordem de cima para
‫baixo.
‫Eles só precisam clicar aqui e ali.
‫Você pode ver selecionando o correto para mim imediatamente.
‫Portanto, este deve ser um zoológico de atualização.
‫Esse botão aqui é atualizar animal.
‫Aquele é o animal
‫líder e aquele aqui vai ser do animal para o zoológico, do animal para o zoológico, e agora acho que terminamos e eles farão essa atualização do
‫zoológico, que deve ser alterado.
‫Atualize mais.
‫Tudo bem.
‫Então agora todos os nossos botões estão bem.
‫Precisamos apenas de uma caixa de texto aqui no meio.
‫E vou reposicioná-lo um pouco assim.
‫Deixe-o mais largo e sim, assim deve estar bem, poderíamos até mudar o tamanho da fonte da caixa de
‫texto para que seja um pouco maior, mas isso deve servir.
‫Como eu disse, não sobre jornalismo perfeito aqui ou perfeccionismo nesta IU.
‫OK, agora que temos isso, podemos prosseguir e adicionar o botão de exclusão.
‫Vou clicar duas vezes no botão.
‫E eu recebo esse evento de clique de botão e, na verdade, não gosto desse nome, então talvez este não seja o melhor.
‫Vamos voltar e mudar isso.
‫Então nós temos esse botão e ele recebeu esse evento chamado Button Click e vou
‫chamá-lo de Delete Zoo e talvez até algo como Underscore Click.
‫Este será o novo manipulador de eventos que irei criar.
‫Copiarei esse nome e implementarei o método sozinho.
‫É um vazio privado.
‫Clicou?
‫E como você sabe, ele precisa de um objeto, que é o remetente e precisa de argumentos de evento roteados e
‫aqui também.
‫Agora aqui podemos simplesmente verificar primeiro se o botão funciona na caixa de mensagem ou mostrar que o lead foi
‫clicado ou algo parecido, o lead foi clicado.
‫Agora vamos executá-lo apenas para ver se o botão funciona corretamente.
‫Certo, nós somos.
‫Portanto, esta é a nossa interface.
‫Tudo parece bom já.
‫Agora vamos deletar o zoológico.
‫Excluir zoo foi perfeito.
‫Portanto, o botão funciona.
‫Agora podemos prosseguir e implementá-lo corretamente aqui.
‫O que vou fazer é criar uma nova consulta porque quero ficar bem, quero deletar algo.
‫Vou usar a palavra-chave delete de qual tabela?
‫Da mesa do zoológico onde a ideia é igual.
‫E agora vamos usar algo chamado zoo ID em Zoo ID, e esse será nossa própria variável que precisamos
‫criar.
‫Portanto, precisamos criar um novo tipo de parâmetro, como vimos com os parâmetros Escorial aqui.
‫Portanto, são parâmetros de comando tortos com valor.
‫E vou mostrar a você a outra maneira de lidar com essas coisas da escola.
‫Portanto, sem usar este adaptador.
‫Direito.
‫Então, vamos apenas usar o seguinte, pois realmente haverá um novo comando Ezequial.
‫E aqui, o comando de resgate precisa de algumas informações.
‫Então, antes de mais nada, ele precisa fazer uma consulta e pedir a sua conexão.
‫Portanto, nada de novo aqui.
‫Já vimos isso aqui.
‫Faça sua consulta de comando e pergunte sua conexão.
‫E agora podemos ir em frente e iniciar essa conexão, peça sua conexão aberta.
‫Portanto, estamos abrindo uma conexão para convidá-lo para sair e agora estamos adicionando o parâmetro a este comando.
‫Assim, os parâmetros iniciam o anúncio com valor.
‫E aqui eu uso isso no Zooid que eu tinha aqui no topo.
‫Portanto, tem que ser exatamente o mesmo que temos aqui.
‫E então eu simplesmente digo o que desejo excluir e direi list zus dot selected value.
‫Mas o valor selecionado não é o nome do animal porque é na verdade o ID e agora podemos executar esse
‫código.
‫Comandos tão obscuros que executam Skoller executam a consulta e retorna a primeira coluna da primeira linha e o
‫conjunto de resultados retornado pela consulta.
‫Colunas adicionais de funções são ignoradas.
‫Então, precisamos disso é, bem, é basicamente a maneira mais simples de executar este Comando Eskil, que
‫executará a consulta em nossa conexão Ezekial.
‫E isso não vai ter sobrecarga.
‫Vai ser uma execução super simples.
‫Tudo bem.
‫E agora, é claro, precisamos encerrar a conexão também.
‫Então peça conexão assim tão perto, porque como você pode ver, precisamos abrir a conexão.
‫Precisamos adicionar os parâmetros, executar o código e, em seguida, precisamos fechar
‫a conexão novamente, caso contrário, podemos ter erros.
‫No momento, o que quero mostrar são os zoológicos.
‫E há uma coisa a se considerar aqui, porque temos muitos zoológicos, temos muitos animais,
‫e até temos essa tabela de relacionamento, que tem os dois combinados.
‫Então, os animais que estão em um zoológico específico.
‫Mas se eu excluir um zoológico, também quero aplicar uma exclusão a todas as entradas diferentes de animais do zoológico.
‫Assim.
‫Vamos aos dados para que fiquem um pouco mais óbvios, vamos dar uma olhada na tabela do zoo e na tabela dos animais do
‫zoo.
‫Então digamos que eu seja o líder de Nova York, que tem a ideia de um, não adianta manter o zoóide um
‫aqui.
‫Portanto, este Zahidi um e esta Eweida um e três.
‫Então, descobri que essas entradas não são mais necessárias porque não há nenhum animal no zoológico, porque o zoológico
‫não existe mais.
‫E é por isso que podemos simplesmente nos livrar dessas duas entradas.
‫Mas não precisamos fazer isso manualmente, aplicando-o no código.
‫Na verdade, podemos ajustar nossa tabela de dados também e ajustá-la fará praticamente o trabalho para nós.
‫Portanto, abra a definição de mesa, é isso que vou abrir.
‫E o que eu simplesmente preciso adicionar aqui no final é Excluir Kaskade.
‫Direito.
‫E fiz isso para ambos aqui, para ambas as restrições, para nossa chave estrangeira animal e nosso zoológico para Hinkie.
‫Então isso vai fazer é simplesmente deletar essa entrada que está lá se a entrada correspondente não estiver disponível ou mais
‫ainda, o ID correspondente no zoológico ao qual estamos conectados.
‫Então, digamos que se excluirmos um zoológico, bem, não precisamos mais de todos os animais de um zoológico,
‫não dos próprios animais, mas dessa correlação ou relação entre o zoológico e os animais.
‫Portanto, podemos nos livrar deles também.
‫Isso é o que essas duas entradas aqui são.
‫Este é um undelete que o Kaskade nos permite fazer agora antes de podermos executar o código, precisamos atualizar apenas para
‫você ver que isso realmente pode causar erros.
‫Portanto, vou simplesmente executar o código.
‫Agora vou iniciá-lo e tentarei excluir algo e você verá o erro que se aplica aqui.
‫Então, vou deletar Kyra.
‫E diz que a declaração deed entrou em conflito com as restrições de referência f k o conflito ocorreu na
‫zona da tabela de banco de dados.
‫Portanto, a coluna zooid, a declaração foi encerrada.
‫Portanto, temos esse erro e bem, se buscarmos o erro, descobriremos que é porque nos falta exatamente
‫isso.
‫Então, na cascata de chumbo, porque ainda não atualizamos.
‫Portanto, agora vamos atualizar o banco de dados com o novo design aqui com nossas novas restrições de tabela atualizadas.
‫E, uma vez feito isso, concluído e bem-sucedido, isso é ótimo.
‫Podemos reiniciá-lo e veremos a exclusão.
‫Carol trabalha agora.
‫Bem, não recebemos um erro, então por que Cairo ainda está lá e isso tem a ver com não lançar ou chamar o
‫método que mostra esta lista ou atualiza esta lista.
‫Então, vamos voltar ao nosso código e ele está realmente aqui.
‫Portanto, temos este código e precisamos agora mostrar que todos os animais são, na verdade, mostrar todos os zoológicos como aquele que mostra os zoológicos.
‫Agora, começou de novo e você verá que o chiros já tinha sumido.
‫Então ele não está mais lá, como você pode ver, acabou com o apagado.
‫Agora leva a Berlim, POUM, e recebemos um erro.
‫Mas ele desapareceu.
‫Como você pode ver, ocorreu um erro porque deletamos algo e esse erro foi aplicado por nosso
‫programa ZUS ou Associated Animal, em algum lugar aqui onde chamamos a exceção, tínhamos essa exceção catch e ela nos
‫mostrou esse erro.
‫OK, mas isso é um grande passo em frente.
‫Portanto, agora o que vou fazer é atualizar este código para que ele não pare bem o nosso programa se ocorrer
‫um erro.
‫Portanto, vou criar um try, catch e, finalmente, bloquear.
‫Então, finalmente não usamos isso com frequência ainda, mas desta vez realmente faz sentido.
‫Então, qual é o código que desejo executar na minha tribo?
‫OK, tudo bem até a execução, então tudo isso pode dar errado e então.
‫Se quisermos fechar a conexão aqui e finalmente, esse é o caminho certo, porque se abrirmos aqui, precisamos
‫fechar em um ponto e devemos fechá-lo.
‫E, por fim, porque mesmo que funcionou ou não funcionou, queremos simplesmente fechá-lo e ter certeza de
‫que está tudo bem.
‫O mesmo nos mostra.
‫Então, se funcionou ou não, não importa.
‫Nós apenas chamamos o método show e isso mostrará bem os naipes que ainda estão em nossa mesa.
‫E agora, em vez de apenas lançar um erro, vou usar e aceitar o seu nome aqui.
‫Vou chamá-lo de E e vou mostrar isso na minha caixa de mensagem.
‫Então, mostra a caixa de mensagem.
‫E este será e aquele a enfiar assim.
‫Tudo bem, agora, este, podemos chamá-lo de X talvez.
‫Talvez seja melhor assim, porque o problema aqui é que nosso evento enraizado já se chama EESA, devemos
‫chamá-lo de Yak.
‫OK, agora vamos começar de novo e ver se podemos deletar componentes de nossa lista.
‫E não temos muitos esquerda direita.
‫Então vamos deletar Tokyo, pegue isto e char para animal em uma junção espera que a zona de Paramatta foi que não
‫foi fornecida.
‫E isso é realmente um erro que não nos ajuda em nada.
‫Então, vou me livrar desta caixa de mensagem aqui porque, bem, temos um erro aqui, mas vou apenas ignorá-lo
‫por enquanto, porque ainda está funcionando, certo?
‫Nosso programa ainda está funcionando e faz o que deveria.
‫Então é justamente aqui que esse código ainda é executado, mostra os animais associados.
‫E, neste caso, não temos nada lá.
‫Direito.
‫Portanto, não selecionamos algo que deveria mostrar os animais associados.
‫Vou apenas me livrar dessa exceção aqui.
‫E, aliás.
‫Sim, todo o resto deve ficar bem.
‫Tudo bem, então, sim, é basicamente isso.
‫Agora você sabe como excluir componentes de seu aplicativo.
‫E no próximo vídeo, vamos adicionar coisas à nossa lista.
‫Então, vejo você lá.