Wer kennt gute Literatur zur Datenbankprogrammierung

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von af0815 »

Warum nicht fragen ? Ich kann die Fragen und Antworten dann in die Lazinfos übernehmen. Es ist sogar Angenehm vernünftige Fragen gestellt zu bekommen, die man dann verwenden kann. Ich habe eher das Problem, das ich kein Feedback bekomme.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

@af0815: Eine Frage hätte ich noch: Woher weißt Du das Alles? Hast Du das aus Büchern? Wenn ja, welche?
P.S.: Bzgl. Feedback. Ein Problem, dass ich selbst hatte und wo es auch einige Fragen bei Google gibt ist, dass bei Benutzung von ApplyUpdates die Fehlermeldung kommt dass die Transaction inaktiv sei, obwohl vor Ausführung auf Active:=True gesetzt. Da gab es eine Antwort, sehr kompliziert, zu der Art des Datenbankdesigns, die ich aber leider nicht wirklich verstanden habe. Auf jeden Fall scheint dieses Problem öfter aufzutreten.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

@af0815: Übrigens betreffend Antwort d) war die Erklärung im Lazarus-Buch zu Fields.FieldbyName und .FieldbyName die, dass bei dem ersten Ausdruck intern eine Typprüfung in Verbindung mit z. B. AsString, .AsInteger, etc. stattfindet und auch korrigiert/abgefangen würde. Wenn's Dich interessiert kann ich nochmal nachlesen und den genauen Wortlaut posten.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von af0815 »

and4more hat geschrieben:@af0815: Übrigens betreffend Antwort d) war die Erklärung im Lazarus-Buch zu Fields.FieldbyName und .FieldbyName die, dass bei dem ersten Ausdruck intern eine Typprüfung in Verbindung mit z. B. AsString, .AsInteger, etc. stattfindet und auch korrigiert/abgefangen würde. Wenn's Dich interessiert kann ich nochmal nachlesen und den genauen Wortlaut posten.


ZITAT: Lazarusbuch Ausgabe 1 2010, Seite 693 Verlag C&L

Code: Alles auswählen

var F:TField;
begin
  F := Dataset.Fields.Fields[0];
end;
.....
 
Da das Array Fields die Standardeigenschaft der TFields-Instanz ist ist obiger QuellText äquivalent zu:
 
var F:TField;
begin
  F := Dataset.Fields[0];
end;
 

Ende Zitat

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von af0815 »

and4more hat geschrieben:@af0815: Eine Frage hätte ich noch: Woher weißt Du das Alles? Hast Du das aus Büchern? Wenn ja, welche?

Ich habe mich jahrelang mit Datenbanken (MS-SQL) beschäftigen können (und auch etliche Ausbildungen zu den Thema gemacht). AUsserdem habe ich die Möglichkeit gehabt ein komplettes Projekt im Umfeld der Betriebsdatenerfassung und Aufbereitung von Null an durchführen zu dürfen. Wenn du dann später auch für die Fehlerbeseitigung und Wartung zuständig bist und die Firma 24/7/365 arbeitet, dann lernst du auch auf die harte Tour, was es heißt stabile, benutzerfreundliche und nach Jahren wartbare Programme zu schreiben. :-)

Es gibt etliches an Literatur, nur meist nicht spezifisch für Pascal. Das macht das ganze etwas schwerer. Noch dazu haben verschiedene Systeme verschiedene Ansätze und damit Eigenheiten. Bei Delphi hat die geniale BDE viel davon vor dem Programmierer versteckt. Bei Lazarus sind die originalen Komponenten mittlerweile auch ausgereift. Mit den Zeos Komponeneten werden die Unterschiede zwischen den Datenbanken soweit wie möglich minimiert und es kommt einiges an Komfort hinzu.

Bei einigen Projekten ist es nach mehr Aufwand am Anfang, persistente Objekte, wie tiOPF zu nehmen (geht aber in Richtung wartbare Hardcoreprogrammierung). Meiner Meinung nach bekommt man als Belohnung dann testbare, wartbare, stabile Applikationen, wenn man das System beherrscht (und nicht umgekehrt).

Informationsquelle, wie gesagt Kurse. Autodidakt das Internet und Bücher. Bei Delphi zB. Autoren: Andreas Kosch, Walter Doberenz & Thomas Kowalski. Du kannst durchaus Bücher aus dem Antiquariat für Delphi 5-7 nehmen :-) Btw ich habe mehere Laufmeter an Büchern zum Thema Turbo Pascal und Delphi gehabt. Genaugenommen fast alles was am deutschen (exakt österreichischen) Markt früher erschienen ist.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

Hmmm, von guter Programmierung und wartbaren Datenbankprogrammen bin ich als Autodidakt Lichtjahre entfernt. Ich bin schon froh wenn's irgendwie klappt. :wink: Und um das zu verbessern hatte ich auch das Thema eröffnet. Werde auch nochmal im Lazarusbuch nachschlagen, ob ich das wiederfinde worauf ich mich bezog.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von af0815 »

and4more hat geschrieben:Hmmm, von guter Programmierung und wartbaren Datenbankprogrammen bin ich als Autodidakt Lichtjahre entfernt. Ich bin schon froh wenn's irgendwie klappt. :wink:

Genau hier liegt das Problem -> 'irgendwie klappt' <-. Datenbanken fangen sinnvollerweise immer damit an, das man sich einmal aufschreibt (ja Papier ist da nicht schlecht) was man will und erwartet. Dann kann man sich einmal Gedanken machen, welche Daten man für das Ziel benötigt und wo die herkommen.

Wenn man soweit einmal gekommen ist und sich das ganze wirklich am Papier mal durchgearbeitet hat, dann kann man mal in die Details gehen und eventuell eine Versuchsapplikation für einen Teilbereich machen, damit kann man auch sein Datenmodell mal testen und ganz wichtig, sovile Testdaten erzeugen wie man später nach ein paar Jahren geplant hat. Denn es ist ein riesiger Unterschied ob 5 Datensätze in der Applikation verarbeitet werden oder 10 Millionen. Und da hat man schon bei simplen Adressbücher riesige Überraschungen mit einem SELECT * FROM MyTable :-)

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

Also bezüglich der Datenbank selbst mache ich mir da weniger Sorgen, die befindet sich in der 3. Normalform, auf eine Zwischentabelle als Mittler zwischen den beiden Tabellen habe ich bewusst verzichtet, da hier nur Integerwerte zum Einsatz kämen und dies nicht wirklich zu einer weiteren Optimierung führen würde. Das Einzige wo's noch haken könnte ist die Funktion zum autoincrementieren des Primärschlüssels und der Trigger für den Foreign-Key in Tabelle 2, denn in einer kleinen Testtabelle ist mir aufgefallen, dass der Primärkey beim raufzählen mehrere Integerwerte springt und nicht nur 1 weiterzählt. Werde das aber nochmal prüfen, wahrscheinlich irgendeine Amok laufende Schleife im Pascalcode.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von af0815 »

and4more hat geschrieben:Das Einzige wo's noch haken könnte ist die Funktion zum autoincrementieren des Primärschlüssels und der Trigger für den Foreign-Key in Tabelle 2, denn in einer kleinen Testtabelle ist mir aufgefallen, dass der Primärkey beim raufzählen mehrere Integerwerte springt und nicht nur 1 weiterzählt. Werde das aber nochmal prüfen, wahrscheinlich irgendeine Amok laufende Schleife im Pascalcode.

Das ist kein Fehler, bei autoinc wird dir nur garantiert das der Wert in der Tabelle eindeutig ist. Es wird dir sonst NICHTS garantiert. Meist ist der Wert aufsteigend, kann aber mit Lücken sein. Denn wenn zB. eine Transaktion nicht beendet wird so ist ja bereits ein Wert vom System erzeugt worden. Durch den Abbruch der Transaktion wird der verworfen und der nächste vom System genommen.

Edit: Typo
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

OK, zum Schluss bedanke ich mich ganz herzlich bei Allen für ihre Mitwirkung und das Brainstorming und natürlich für die ganze Mühe, speziell natürlich bei af0815 (Du hast mir wirklich sehr geholfen). Aber ab jetzt würde es in andere Themenbereiche gehen, die nichts mehr mit der Fragestellung zu tun haben = Anderes Thema. Ich wünsche allen, die geschrieben haben und allen, die sich zumindest ein bisschen das Köpfchen mitzerbrochen haben, auch wenn sie vielleicht keinen Kommentar gepostet haben, und natürlich auch allen anderen einen guten Rutsch. Mein Fazit ist, dass es leider wohl keine käufliche Pascal/Delphi/Lazarus-spezifische Literatur zum genannten Thema gibt. :( Insofern kann das Bemühen von af0815 uns alle mit guten Infos zu versorgen (-> LazInfos) gar nicht hoch genug geschätzt werden.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von hde »

@and4more
falls du glaubst, man könne ein gutes Datenbankprogramm schreiben weil man ein Buch gelesen hat, dann weißt du noch gar nicht, von was du eigentlich sprichst.
Das Wissen zu Datenbanken passt nicht in ein einziges Buch, es ist viel zu komplex. Datenbankdesign und -Nutzung richtig zu verstehen, dazu braucht es Schulung, Schulung, Schulung, oder besser ein Studium. Und nicht zu vergessen; Erfahrung !
Also Geduld, Geduld, und Lesen und Üben. Ein Meister fällt nicht vom Himmel, Datenbanken sind ein weites Feld, Oracle, IBM DB2, Firebird oder mySQL, uva., keine gleicht der anderen. SQL oder nicht? Jedenfalls gibt es viel zu lernen.
Aber bevor man anfängt sie zu programmieren sollte man wissen was Datenbanken sind und wie sie funktionieren.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von Christian »

Hde übertreibt sehr stark.
Wenn jemand das richtige in ein Buch schrieben tut, würde das schon gehn :)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

hausi
Beiträge: 132
Registriert: Mi 23. Sep 2009, 08:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von hausi »

@and4more

Wenn Du ein Buch lesen willst, dann kauf Dir ein gebrauchtes Delphi 5 oder 6 oder 7 Buch oder ein Delphi Kochbuch oder das Buch Datenbankprogrammierung mit Delphi. Bekommste alle günstig gebraucht bei Amazon. Oder guckst Du hier: http://www.delphi-treff.de/tutorials/ Ansonsten wie af0815 schreibt, üben und probieren. Ich persönlich habe, als ich von einer anderen PRG Sprache umgestiegen bin, zuerst das Heft von KnowWare Delphi leicht und Verständlich durch gearbeitet und mich dann an die DB´s gewagt. Ohne üben und probieren und wieder üben und probieren kommste nie ans Ziel. Programmieren hat auch mit Erfahrung zu tun.

Hausi

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

Nochmals danke für die Kommentare.
@hde: Ich gehe davon aus, dass Leute, die Fragen im Forum stellen auf der Suche nach konstruktiven Vorschlägen sind. Letztlich hat ja jeder irgendwie angefangen und das sicher nicht nur mit Schulungen. Die "Das-schaffst-Du-sowieso-nicht, weil-da-braucht's-einen-echten-Profi"-Einstellung ist, wie ich finde, wenig hilfreich für das Erreichen/Verbessern von (noch nicht vorhandenen) Kenntnissen, und nur darum geht's mir ja. Außerdem habe ich nicht behauptet, dass Lesen der einzige Weg wäre, aber ich halte es auf dem Weg zu einem bestimmten Ziel sehr hilfreich, da ich leider keiner von den Talentierten bin, die das Programmieren mit der Muttermilch aufgenommen haben. Z. B. waren die Antworten von af0815 für mich bereits extrem hilfreich.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

and4more
Beiträge: 207
Registriert: Do 15. Nov 2012, 19:13
OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
CPU-Target: 32 Bit / 64 Bit

Re: Wer kennt gute Literatur zur Datenbankprogrammierung

Beitrag von and4more »

@hausi: Vielen Dank für die Empfehlung, habe mir mal 2 Bücher zu Delphi und Datenbankprogrammierung bestellt. Ich war bisher vielleicht doch zu sehr auf Lazarus alleine fixiert.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit

Antworten