Free Pascal programmieren lernen.

Aktuelles

Herzlich willkommen auf freepascal.de


Free Pascal programmieren lernen.

Firebird SQL Delete mit Freepascal

Einleitung

In diesem Artikel möchte ich mit dir besprechen, wie man eine Firebird SQL Delete erstellt. Die technische Umsetzung ist Simpel, daher möchte ich dir die Sichtweise einer Datenlöschung aus der Sicht eines Entwicklers oder Software Verantwortlichen Unternehmers vorstellen. Danach erhältst du auch noch die Sicht unserer Gesetzgebung also aus Sicht der DSGVO.

(mehr …)


Free Pascal programmieren lernen.

Firebird SQl Update mit Freepascal

Einleitung

Für ein Firebird Datenbank Update benötigst du eine in unserer dbconect Unit eine Update Prozedur und in unserer GUI musst du die Prozedur BtnPeopleSaveClick erweitern.

Abb. Prozedur UpdateDBData

Abb. Prozedur UpdateDBData

Teil 01: Firebird SQL Update Prozedur

Quelltext:

procedure TForm2.UpdateDBData;
var
strID, strLastName, strFirstName, strTel, strMobile : string;
begin
strID := Form1.EdtID.Text;
strLastName := Form1.EdtLastName.Text;
strFirstName := Form1.EdtFirstName.Text;
strTel := Form1.EdtTel.Text;
strMobile := Form1.EdtMobile.Text;
connectDB;
SQLQPeople.SQL.Text := 'Update PERSONEN SET ID = '''+strID+''', NAME = '''+strLastName+''', VORNAME = '''+strFirstName+''', TEL = '''+strTel+''', MOBIL = '''+strMobile+''' WHERE ID = '''+strID+'''';
closeDB;
end;

In Zeile 1 siehst du den Prozedur Kopf mit Namen und der Zuordnung für das Form2. Zeile 2 leitet die Variablendeklaration ein. In der nächsten Zeile 3 werden die fünf Stringvariablen deklariert die du für die Datenübernahme aus den Editfeldern benötigst. Zeile 4 leitet mit dem Schlüsselwort begin die eigentliche Prozedur ein. Danach werden in den Zeilen fünf bis neuen die Stringvariablen durch die Editfelder deines Programmes mit Inhalten befüllt.
In Zeile 10 baust du eine Datenbankverbindung über die Prozedur connectDB auf. In Zeile 11 folgt dann das eigentliche Update. Die Komponente SQLQPeople.SQL.Text führt das Update durch. Die Firebird SQL Anweisung lautet: „Update PERSONEN SET ID = ”’+strID+”’, … WEHRE ID = ”’+strID+””; Möchte man die Anweisung richtig lesen lautet diese Aktualisiere Tabelle Personen und setze ID = Variable ID … wo ID gleich Variable ID. In der Zeile 12 wird die die Datenbank Verbindung wieder geschlossen.

Teil 02: Firebird SQL Update Button Speichern erweitern

Quelltext:

procedure TForm1.BtnPeopleSaveClick(Sender: TObject);
begin
{* Prüfen ob ein Update oder
* ein Insert ausgeführt werden soll.
*}

if(isInsertOrUpdate = 1) then
begin
// Update ausführen
Form2.UpdateDBData;
End
else
begin
// Insert ausführen
Form2.InsertDBData;
isInsertOrUpdate := 1;
end;
end;

Den ersten Teil der Prozedur hattest du für einen Insert bereits entwickelt. Der Update teil folgt nun. Die globale Variable isInsertOrUpdate ist bei Programmstart auf „1“ gesetzt und führt somit immer ein Update aus, außer du klickst den „Neu anlegen“ Button dann wird diese auf 0 gesetzt. Bei 0 wird der Insert Teil ausgeführt. Im Updateteil der If Else Anweisung wird unsere Update Prozedur s.o. aufgerufen und ausgeführt. Das sich diese im Form 2 befindet musst du dies mit angeben.


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

Quelltext Insert

Quelltext 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

Quelltext Insert 2 zum vergrößern anklicken.

Quelltext Insert 2 zum vergrößern anklicken.

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

Quellcode Insert Cick

Quellcode Insert Click

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.


Free Pascal programmieren lernen.

FirefirdSQL DB Select Datenabfrage

Einleitung – FirefirdSQL DB Select Abfrage

TListView Beispiel Software

TListView Beispiel Software

Für eine FirefirdSQL DB Select Abfrage mit einer Benutzeroberfläche, benötigst du einige Hilfsprozeduren. Du benötigst eine Prozedur um Daten zur Komponente TListView hinzuzufügen. Die Daten müssen beim starten des Programms geladen werden. Hierfür wirst du eine Prozedur erstellen die durch ein Ereignis des Form1 angelegt wird. Für den späteren Verlauf setzt du eine globale Hilfsvariable. Diese wird später für den Speichern Button benötigt. Denn legst du neue Daten an, benötigst du eine Insert Prozedur. Für das speichern bereits vorhandener Inhalte eine Update Prozedur. Die Variable wird später gesetzt, wenn der User das Programm aufruft und auf den Button Neu anlegen klickt. Eine weitere Prozedur für die Datenabfrage benötigst du, wenn der User die ListView anklickt und einen neuen oder noch nicht ausgewählten Eintrag auswählt. Die Daten müssen in diesem Fall neu in die Editfelder geladen werden. Zum Schluss hast du dann noch die eigentliche Prozedur, die die Daten aus der Datenbank abfragt. Diese wird durch die einzelnen Ereignis Prozeduren mehrfach aufgerufen und wird daher, in eine eigene Prozedur geschrieben. Ich werde mit der Prozedur AddToListView beginnen und danach die SelectAbfrage in einer eigenen Prozedur erstellen. Alle andren Prozeduren kommen dann später hinzu, da diese von diesen beiden Prozeduren abhängig sind.

(mehr …)


Free Pascal programmieren lernen.

FirebirdSQL Prozedur dbconnection

Unit dbconnection

Dein Form2 wird unter dem Namen dbconnection abgespeichert. In dieser Unit kannst du dann die beiden Prozeduren für den Verbindungsaufbau zur Datenbank anlegen. Diese tragen den Namen DBConnect und DBClose.

Prozedur DBConnect für FirebirdSQL

Unit dbconnection Kopf

Unit dbconnection Kopf

Die Prozedur muss im Kopf der Pascaldatei unter Type angelegt werden und dann im Quelltext nach implementation wird die ganze Prozedur programmiert.

procedure TForm2.connectDB;
begin
IBCPeople.Hostname := 'localhost';
IBCPeople.UserName := 'SYSDBA';
IBCPeople.Password := 'masterkey';
IBCPeople.DatabaseName := 'E:\SQL\AWTEST.fdb';
IBCPeople.Transaction := SQLTPeople;
IBCPeople.Connected := True;
SQLQPeople.Database := IBCPeople;
end;

(mehr …)


1 4 5 6 7 8 15