‫Willkommen zurück.
‫In diesem Video werden wir den Rest unserer Benutzeroberfläche hinzufügen und vorerst eine
‫Funktion hinzufügen, die ZUS löschen wird.
‫Also lass uns weitermachen und das tun.
‫Wie Sie sehen, sollte die Oberfläche ungefähr so aussehen.
‫Und wir werden es fast genauso bauen.
‫Wir könnten es genauso aufbauen, indem wir die gleichen Informationen hier unten eingeben.
‫Aber hier geht es eher um das Ziehen und Ablegen, damit wir den Haskell-Code ausführen können, den wir benötigen, oder allgemein
‫den Datenbankcode, den wir in C Sharp benötigen.
‫Öffnen wir also zunächst die Toolbox, damit wir sehen können, was wir brauchen, und wir werden
‫Schaltflächen brauchen.
‫Und ich werde einen Knopf einfach so mit etwas Abstand hier reinziehen.
‫Und diese Schaltfläche sollte etwas wie Inhalt löschen sagen, dann werde ich diese Schaltfläche tatsächlich kopieren und einfügen,
‫ich werde sie daneben ziehen.
‫Und dieses war Tier entfernen, weil wir es nicht löschen, sondern nur entfernen.
‫Und Nimo und dieser ist übrigens nicht besinnlich zu löschen.
‫Also haben wir auch Löschen und wir haben jetzt Tier entfernen, kopieren und einfügen.
‫Ich werde es gleich hier einfügen, kopieren und wieder einfügen.
‫Eigentlich müssen wir nur die Schaltflächen erstellen, bevor wir sie umbenennen und hier reinkommen.
‫Und dann noch einer hier unten und der letzte oben rechts dort.
‫Vielleicht sollten wir also alles so etwas weiter nach unten ziehen, damit genug Platz für den Löschen-Button ist.
‫Und dieser kann so gehen.
‫In Ordnung, also könnten wir jetzt auch diese beiden etwas nach unten ziehen, damit die Listen die
‫gleiche Höhe wie die auf der rechten Seite haben.
‫Nun gut, es geht hier nicht um perfektes, perfektes User Interface, es geht um andere Themen, wie ihr
‫wisst.
‫Okay, fünfhundert sind zu viel für 50.
‫Sollte gut sein.
‫Und jetzt schauen wir uns sechshundert an.
‫Das ist noch zu viel.
‫Oder sechs.
‫Fünfundzwanzig.
‫Sechshundert sollte ein bisschen besser sein.
‫Vielleicht fünfundachtzig oder so ähnlich.
‫OK, jetzt sind alle Tasten drin.
‫Es gibt Hauptfenster sieht gut aus.
‫Wir könnten sogar den Namen unseres Titels ändern.
‫Machen wir es zu einem Zoomanager.
‫Gut.
‫Wir haben diese Liste, den Leitzoo.
‫Jetzt können wir alle Inhalte dieser Schaltflächen ändern.
‫Der war also im Zoo.
‫Das ist Update Zoo.
‫Eigentlich war das ein Tier nicht da, weil sie nicht von oben nach unten in der Reihenfolge
‫sind.
‫Sie müssen nur hier und da reinklicken.
‫Sie können sofort sehen, wie Sie das richtige für mich auswählen.
‫Also sollte dieser Zoo aktualisiert werden.
‫Diese Schaltfläche hier ist Tier aktualisieren.
‫Das ist das führende
‫Tier und das hier wird von Tier zu Zoo, Tier zu Zoo sein, und jetzt denke ich, wir sind fertig und sie machen tatsächlich dieses eine Update
‫Zoo, das sollte geändert werden.
‫Aktualisieren Sie nicht mehr.
‫Gut.
‫Jetzt sind alle unsere Tasten in Ordnung.
‫Wir brauchen hier nur ein Textfeld in der Mitte.
‫Und ich werde es ein bisschen so umpositionieren.
‫Machen Sie es breiter und ja, genau so sollte das in Ordnung sein, wir könnten sogar die Schriftgröße des Textfelds
‫ändern, sodass es etwas größer ist, aber das sollte in Ordnung sein.
‫Wie gesagt, nicht über perfekten Journalismus hier oder Perfektionismus in dieser Benutzeroberfläche.
‫OK, nun, da wir das haben, können wir fortfahren und die Schaltfläche Löschen hinzufügen.
‫Also klicke ich doppelt auf den Button.
‫Und ich bekomme dieses Schaltflächenklick-Ereignis, und eigentlich mag ich diesen Namen nicht, also ist dies vielleicht nicht der beste.
‫Gehen wir zurück und ändern wir es.
‫Wir haben also diesen Button und er hat dieses Ereignis namens Button Click erhalten und ich
‫werde es Delete Zoo nennen und vielleicht sogar so etwas wie Underscore Click.
‫Dies wird der neue Ereignishandler sein, den ich erstellen werde.
‫Ich werde diesen Namen kopieren und die Methode selbst implementieren.
‫Es ist eine private Leere.
‫Hat es Klick gemacht?
‫Und wie Sie wissen, braucht es ein Objekt, das der Sender ist, und es braucht ein Routing-Ereignis args und
‫auch hier.
‫Jetzt können wir hier einfach zuerst überprüfen, ob die Schaltfläche in der Meldungsbox funktioniert oder anzeigen, dass der Lead angeklickt
‫wurde oder so ähnlich, der Lead angeklickt wurde.
‫Lassen Sie uns es jetzt ausführen, um zu sehen, ob die Schaltfläche richtig funktioniert.
‫Richtig, das sind wir.
‫Das ist also unsere Schnittstelle.
‫Alles scheint schon gut.
‫Jetzt löschen wir den Zoo.
‫Zoo löschen war perfekt.
‫Der Knopf funktioniert also.
‫Jetzt können wir fortfahren und es hier richtig implementieren.
‫Was ich tun werde, ist, eine neue Abfrage zu erstellen, weil ich gesund sein wollte, ich möchte, dass etwas gelöscht wird.
‫Also werde ich das Schlüsselwort delete aus welcher Tabelle verwenden?
‫Vom Zootisch, wo die Idee gleich ist.
‫Und jetzt werden wir bei Zoo ID etwas namens Zoo ID verwenden, und das wird unsere eigene Variable sein, die wir
‫erstellen müssen.
‫Wir müssen also eine neue Art von Parameter erstellen, wie wir hier bei Escorial-Parametern gesehen haben.
‫Es ist also schiefe Befehlsparameter mit Wert.
‫Und ich werde dir den anderen Weg zeigen, wie man mit diesem Schulkram umgeht.
‫Also ohne diesen Adapter zu verwenden.
‫Rechts.
‫Wir werden also nur das Folgende verwenden, da es sich tatsächlich um einen neuen Ezekial-Befehl handelt.
‫Und hier braucht das Rettungskommando einige Informationen.
‫Es muss also zunächst eine Abfrage durchführen und Sie nach der Verbindung fragen.
‫Also nichts Neues hier.
‫Das haben wir hier oben schon gesehen.
‫Stellen Sie Ihre Befehlsabfrage und fragen Sie Ihre Verbindung.
‫Und jetzt können wir diese Verbindung starten und Ihre Verbindung öffnen.
‫Wir öffnen also eine Verbindung, um Sie nach einem Date zu fragen, und fügen nun den Parameter zu diesem Befehl hinzu.
‫Parameter starten also die Anzeige mit dem Wert.
‫Und hier verwende ich das bei Zooid, das ich hier oben hatte.
‫Es muss also genau so sein wie hier.
‫Und dann sage ich einfach, was ich löschen möchte und sage Liste zus Punkt ausgewählter Wert.
‫Der ausgewählte Wert ist jedoch nicht der Name des Tieres, da es sich tatsächlich um die ID handelt, und jetzt können wir diesen Code
‫ausführen.
‫Also obskure Befehle, die Skoller ausführen, führen die Abfrage aus und geben die erste Spalte der ersten Zeile und die
‫von der Abfrage zurückgegebene Ergebnismenge zurück.
‫Zusätzliche Spalten mit Rollen werden ignoriert.
‫Was wir also brauchen, ist, nun, es ist so ziemlich der einfachste Weg, diesen Eskil-Befehl auszuführen,
‫der die Abfrage auf unserer Ezekial-Verbindung ausführt.
‫Und das wird einfach keinen Overhead haben.
‫Es wird eine super einfache Ausführung.
‫Gut.
‫Und jetzt müssen wir natürlich auch die Verbindung schließen.
‫Stellen Sie also die Verbindung so weit her, denn wie Sie sehen, müssen wir die Verbindung öffnen.
‫Wir müssen die Parameter hinzufügen, den Code ausführen und dann die Verbindung
‫wieder schließen, da sonst Fehler auftreten können.
‫Im Moment möchte ich die Zoos zeigen.
‫Und eines ist hier eigentlich zu beachten, denn wir haben viele Zoos, wir haben viele
‫Tiere und wir haben sogar diese Beziehungstabelle, die beides kombiniert hat.
‫Also die Tiere, die sich in einem bestimmten Zoo befinden.
‫Aber wenn ich einen Zoo lösche, möchte ich auch alle verschiedenen Zootiereinträge löschen.
‫So.
‫Gehen wir zu den Daten, damit es etwas offensichtlicher ist. Schauen wir uns die Zoo-Tabelle und die Zootier-Tabelle an.
‫Nehmen wir also an, ich bin der führende New Yorker, der die Idee hat, einen Zooid zu
‫halten.
‫Also dieser Zahidi und dieser Eweida eins und drei.
‫Also bin ich auf diese Einträge gestoßen, die nicht mehr erforderlich sind, weil es kein Tier im Zoo gibt, weil der
‫Zoo nicht mehr existiert.
‫Und deshalb können wir diese beiden Einträge einfach loswerden.
‫Aber wir müssen es nicht manuell tun, indem wir es im Code anwenden.
‫Wir können tatsächlich auch unsere Datentabelle anpassen, und die Anpassung wird die Arbeit für uns ziemlich erledigen.
‫Also offene Tabellendefinition, das werde ich öffnen.
‫Und was ich hier am Ende nur noch hinzufügen muss, ist Delete Kaskade.
‫Rechts.
‫Und ich habe es für beides hier gemacht, also für beide Zwänge, für unseren tierischen Fremdschlüssel und unseren Zoo für Hinkie.
‫Es wird also einfach dieser Eintrag gelöscht, der vorhanden ist, wenn der entsprechende Eintrag nicht verfügbar ist oder vielmehr die entsprechende
‫ID in dem Zoo, mit dem wir verbunden sind.
‫Sagen wir also, wenn wir einen Zoo löschen, na ja, dann brauchen wir nicht mehr alle Tiere in
‫einem Zoo, nicht die Tiere selbst, sondern diese Korrelation oder diese Beziehung zwischen Zoo und Tieren.
‫So können wir auch diese loswerden.
‫Das sind diese beiden Einträge hier.
‫Diese eine Wiederherstellung ist, dass Kaskade uns dies jetzt ermöglicht, bevor wir den Code ausführen können. Wir müssen nur aktualisieren, damit
‫Sie sehen, dass dies tatsächlich zu Fehlern führen kann.
‫Also führe ich einfach den Code aus.
‫Jetzt werde ich es starten und versuchen, etwas zu löschen, und Sie werden den Fehler sehen, der hier zutrifft.
‫Also werde ich Kyra löschen.
‫Und es sagt, dass die deed-Anweisung mit den Referenz-Constraints in Konflikt stand f k Der Konflikt
‫trat in der Datenbanktabellenzone auf.
‫Also Spalte zooid, die Anweisung wurde beendet.
‫Wir haben also diesen Fehler und nun, wenn wir nach Fehlern suchen, stellen wir fest, dass dies daran liegt, dass uns genau
‫dieser fehlt.
‫Also an der Lead-Kaskade, und das liegt daran, dass wir noch nicht aktualisiert haben.
‫Lassen Sie uns nun die Datenbank mit dem neuen Design hier mit unseren neuen aktualisierten Tabellenbeschränkungen aktualisieren.
‫Und wenn das erledigt ist, haben Sie es abgeschlossen und erfolgreich, das ist großartig.
‫Wir können es wieder starten und wir werden sehen, dass es gelöscht wird.
‫Carol arbeitet jetzt.
‫Nun, wir haben keinen Fehler bekommen, warum ist Cairo also immer noch da und das hat damit zu tun, dass wir die Methode,
‫die diese Liste anzeigt oder aktualisiert, nicht umwandeln oder aufrufen.
‫Gehen wir also zurück zu unserem Code und er ist tatsächlich hier.
‫Wir haben also diesen Code und müssen jetzt alle Tiere anzeigen, die eigentlich alle Zoos anzeigen, wie diese Zoos anzeigen.
‫Jetzt fing das wieder an und Sie werden sehen, dass der Chiros bereits weg war.
‫Es ist also nicht mehr da, wie man sieht, ist weg mit gelöscht.
‫Es führt nun nach Berlin, POUM, und wir erhalten eine Fehlermeldung.
‫Aber es ist verschwunden.
‫Wie Sie sehen, ist ein Fehler aufgetreten, weil wir etwas gelöscht haben und dieser Fehler von unserer Show
‫ZUS oder Associated Animal angewendet wurde, irgendwo hier, wo wir die Ausnahme aufgerufen haben, hatten wir diese Catch-Ausnahme und sie zeigte
‫uns diesen Fehler.
‫Okay, aber das ist ein ziemlicher Schritt nach vorne.
‫Was ich jetzt tun werde, ist, diesen Code zu aktualisieren, damit er unser Programm nicht anhält, wenn ein
‫Fehler auftritt.
‫Also werde ich versuchen, zu fangen und schließlich zu blockieren.
‫Wir haben final also noch nicht so oft genutzt, aber diesmal macht es wirklich Sinn.
‫Was ist also der Code, den ich in meinem Stamm ausführen möchte?
‫OK, nun, alles bis zur Ausführung, damit all das schief gehen kann und dann.
‫Wenn wir die Verbindung hier und endlich schließen wollen, ist das der richtige Weg, denn wenn wir sie hier öffnen, müssen wir sie
‫an einer Stelle schließen und wir sollten sie schließen.
‫Und schließlich, denn selbst wenn es funktioniert oder nicht funktioniert, möchten wir es einfach schließen und sicherstellen,
‫dass alles in Ordnung ist.
‫Das gleiche mit zeigt uns.
‫Ob es also funktioniert hat oder nicht, spielt keine Rolle.
‫Wir rufen einfach die Show-Methode auf und das wird die Farben zeigen, die sich noch in unserer Tabelle befinden.
‫Und jetzt, anstatt nur einen Fehler zu werfen, werde ich Ihren Namen hier verwenden und akzeptieren.
‫Ich werde es E nennen und das in meinem Nachrichtenfeld anzeigen.
‫Also Meldungsfeld anzeigen.
‫Und dieser wird es sein, so zu besaiten.
‫Okay, dieses hier können wir vielleicht X nennen.
‫Vielleicht ist das besser, denn das Problem hier ist, dass unser Root-Event bereits EESA heißt, wir sollten
‫dieses Yak's nennen.
‫OK, jetzt starten wir es erneut und sehen, ob wir Komponenten aus unserer Liste löschen können.
‫Und wir haben nicht viele links rechts.
‫Also lass uns Tokyo löschen, hol das und char für Tier in einem Join erwartet, dass die Paramatta-Zone war, die nicht
‫versorgt wurde.
‫Und das ist eigentlich ein Fehler, der uns überhaupt nicht hilft.
‫Also werde ich dieses Nachrichtenfeld hier loswerden, weil wir hier einen Fehler bekommen, aber ich werde ihn vorerst einfach
‫ignorieren, weil er einfach noch funktioniert, oder?
‫Unser Programm funktioniert noch und tut was es soll.
‫Genau hier wird dieser Code also noch ausgeführt, zugehörige Tiere anzeigen.
‫Und in diesem Fall haben wir nichts drin.
‫Rechts.
‫Wir haben also nichts ausgewählt, was die dazugehörigen Tiere zeigen soll.
‫Ich werde diese Ausnahme hier einfach loswerden.
‫Und nebenbei.
‫Ja, alles andere sollte in Ordnung sein.
‫In Ordnung, also, ja, das war's so ziemlich.
‫Jetzt wissen Sie, wie Sie Komponenten aus Ihrer Anwendung löschen.
‫Und im nächsten Video werden wir unserer Liste Sachen hinzufügen.
‫Wir sehen uns also dort.