Free Pascal programmieren lernen.
Firebird SQL Insert mit Freepascal
Einleitung
Der Artikel Firebird SQL Insert mit Freepascal ist Teil einer Artikelserie. Die mit Links versehenen Wörter sind Verweise auf vorige Artikel in denen diese Programm Prozeduren erstellt wurden.
Für ein Insert mit Benutzeroberfläche benötigst du nur drei Funktionen. In deiner Datenbank Unit erstellst du die erste Prozedur die, die Daten in die Datenbank einfügt. Für das Neu anlegen von Daten benötigst du einen Button mit der Prozedur „Neu Eintragen“ und einen Speichern Button. Der Neu Eintragen Button leert alle Editfelder und setzt die im letzten Artikel beschriebene Hilfsvariable isInsertOrUpdate auf „0“. Dies bedeutet das du beim Drücken auf speichern ein Insert durchführen willst. Nachfolgend die Insert Funktion.
Teil 01: Daten einfügen – Firebird SQL Insert
Die Prozedur besteht aus sieben Einzelteilen.
Im ersten Teil ist die Variablendeklaration in den Zeilen fünf und sechs. Du benötigst String Variablen und eine Integer Variable.
In dem zweiten Teil baust du mit der Funktion connectDB, eine Datenbank Verbindung auf. Nun folgt in Zeile 10 eine Datenbankabfrage der höchsten ID als PID von der Tabelle Personen. In Zeile 11 wird die SQLQuery Komponente SQLQPeople auf „aktive“ gesetzt. In der nächsten Zeile baust du über die Komponente eine DB Verbindung auf und rufst den Datensatz mit der höchsten ID ab. Das Ergebnis wird als Integer über den Namen abgefragt und in der Integer Variable intLastID gespeichert (Zeile 13). In Zeile 14 wird die Datenbank Verbindung mit der Funktion closeDB wieder geschlossen
Im weiteren Programmverlauf und Teil drei der Prozedur musst du in Zeile 17 die ID um 1 erhöhen, da du einen neuen Eintrag, mit einer höheren ID eintragen möchtest. In der 20 Zeile setzt du die Funktion IntToStr() ein, um die Integer Variable intLastID in ein String umzuformen und diesen in die Variable strID zu speichern.
Im vierten Teil fügst du die neue ID zum Editfeld „EdtId“ des Form1 hinzu (Zeile 21).
Im fünften Teil fragst du die einzelnen Editfelder ab und speicherst diese in die im Teil 1 deklarierten Variablen ab. Dies geschieht in Zeile 24 bis 27.
In Teil sechsten erstellst du den eigentlichen Datenbank Insert. Dies geschieht in Ziele 30 bis 33. Mit der Prozedur connectDB baust du eine Datenbank Verbindung auf. Danach folgt der Eintrag „Insert“ in die Datenbank. Zum Schluss schließt du die Datenbank Verbindung wieder mit der Prozedur closeDB.
Der Eintrag „Insert“ ist vereinfacht wie folgt aufgebaut.
“Insert INTO Tabelle (Spalte1, Spalte1) VALUES(Inhalt1, Inhalt2)“;
Im letzten siebten Teil müsst du den Eintrag auch in unsere ListView hinzufügen. Dies kann man über verschiedene Wege lösen. du kannst wie hier im Beispiel gezeigt, einfach die neuen Daten in die ListView hinzufügen. Alternativ könnte man die ListView komplett löschen und aus der Datenbank neu laden. Ich füge wie gesagt die neuen Daten einfach zu ListView über die bereits im letzten Artikel beschriebene Funktion AddToListViewPersonen hinzu.
Teil 02: GUI Button und Prozedur Neu anlegen für Firebird SQL Insert
In der zweiten Prozedur musst du für den Button Neu Anlegen ein OnClick Ereignis erzeugen. In dieser setzt du in Zeile 3 die globale Variable isInsertOrUpdate auf „0“ und damit auf Insert. Von Zeile sieben bis elf setzen wir alle Text Eigenschaften der Editfelder auf leer.
Teil 03: GUI Button und Prozedur Insert oder Save
In dieser Prozedur kannst du durch die globale Variable isInsertOrUpdate unterscheiden, ob du ein Insert oder ein Update durchführen möchtest. In Zeile sechs prüfst du, ob die Variable 1 ist. Wenn das der Fall ist führst du ein Update durch. Die Update Prozedur erkläre ich im nächsten Artikel. Wenn das nicht der Fall ist führe ein Insert durch. Die Insert Prozedur habe ich in Teil 1 s.o. ausführlich erklärt. Du rufst in dieser Prozedur in Zeile 14 die oben in der Unit von Form2 angelegte Variable auf. In Zeile 15 setzt du nun die globale Variable wieder auf Update, in dem diese auf 1 gesetzt wird.
Das kleine Programm kannst du dir hier herunterladen. Die Software ist bereits komplett fertig gestellt.
Die fertige Software können Sie in meinem Downloadbereich kostenlos und ohne Anmeldung herunterladen.