Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mit welchen Datenbankkomponenten afangen? (https://www.delphipraxis.net/199194-mit-welchen-datenbankkomponenten-afangen.html)

Delphi.Narium 9. Jan 2019 14:48

AW: Mit welchen Datenbankkomponenten afangen?
 
Access ist sicherlich nicht so wirklich das Wahre, wenn es um richtig professionelle Software geht oder man richtig viele Daten hat.

Wenn man aus Delphi heraus programmiert und beim Erstellen von Tabellen ... sich an den SQL-Standard hält, dann geht das wunderbar. nimmt man aber die Accessoberfläche und klickt sich da was zusammen, wird es (für meine Begriffe) recht schnell absonderlich.

Aber ein Vorteil ist auch: Wenn man sich beim Üben und Lernen "verzockt" hat, schmeißt man die Datei weg, läßt sich 'ne neue Machen und fängt nochmal an.

Zeit für den Neuanfang: 2 Minuten? Oder weniger?

Zum Lernen und Probieren käme ich nie auf die Idee, mir erstmal 'nen Datenbankserver zu installieren, diverses Komponenten zu kaufen ...

Erstmal nur die "Hausmittel" und die hat man für die Datenbankentwicklung nunmal mit dem Betriebssystem und Delphi alle.

Wenn man den Umgang damit kapiert hat, kann man sich mit wenig Aufwand in die professionellen Werkzeuge einarbeiten und hat auch schon das Knowhow, um eine zielgerichtete Auswahl von Datenbank und Zugriffskomponenten zu treffen.

Zum Schreibenlernen in der Schule brauchten wir keinen Füller von Montblanc mit Goldfeder und Tintenfass, die einfachen von Pelikan mit Patronen taten es auch.

mkinzler 9. Jan 2019 14:53

AW: Mit welchen Datenbankkomponenten afangen?
 
Bei SQLite oder FireBird embedded muss man keinen Server installieren.

Delphi.Narium 9. Jan 2019 15:03

AW: Mit welchen Datenbankkomponenten afangen?
 
Nein, aber schon wissen, wo die passenden DLLs ... hinmüssen.

Man muss was installieren, was noch nicht auf dem System vorhanden ist.

Und mit reinen Delphihausmitteln und nur Windows ist es da dann eben auch schon nicht mehr gemacht.

ADO und Access u. a. auch wegen

Zitat:

Zitat von vor 'ner Stunde weiter oben
Man braucht keinen Download von was auch immer, keine Registrierung, wo auch immer, keine Installation von was auch immer ...


Schokohase 9. Jan 2019 15:12

AW: Mit welchen Datenbankkomponenten afangen?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1422969)
Man muss was installieren, was noch nicht auf dem System vorhanden ist.

Und mit reinen Delphihausmitteln und nur Windows ist es da dann eben auch schon nicht mehr gemacht.

FireDAC und SQlite => einfach so mit Delphihausmitteln

DualCoreCpu 9. Jan 2019 20:09

AW: Mit welchen Datenbankkomponenten afangen?
 
Aaaalso, ich habe jetzt DBeaver installiert und damit eine Firebird Verbindung aufgebaut. Bei anderen Verbindungen fragt DBeaver nach einem Datenbankdriver. Woher weiß ich den?

Nun will ich aber mit DBeaver auch ein Datenbanktabelle aufbauen. Ich habe noch nie mit SQL gearbeitet, brauche dafür erst mal eine Doku der SQL Anweisungen plus Programmbeispiele.

Ich brauche zum Anfang eine Datenbanktabelle. Wie kann ich die erstellen. Eine Komponente, die so eine Tabelle nicht nur lesen, sondern auch schreiben kann, wäre hilfreich. IBExpert kann ich nicht runter laden, weil die Registrierung nicht klappt auf der IBExpert Webseite. Da habe ich mich nun für DBeaver entschieden, kriege aber immer noch keine Datentabelle. Wozu ist da der Felder Editor von TTable & Co gut? Wenn ich nun noch die Datentabelle schreiben könnte, falls sie noch nicht existiert, wäre mir ja auch geholfen.

Bei Delphi 7 und niedriger gab es mal die Datanbankoberfläche.Dort konnte ich Datenbanktabellen anlegen, die Felder definieren und konnte die dann mit den Delphi Komponenten verwenden.DBeaver macht das nicht fr mich. Welche Möglichkeiten gibt es da noch. Außer SQL lernen müssen. Das braucht zu viel Zeit. Und auch außer ein Delphi 7 nur wegen der Datenbankoberfläche installieren.

jobo 9. Jan 2019 21:08

AW: Mit welchen Datenbankkomponenten afangen?
 
Du gehst auf die Firebird Connection und drückst F3, damit öffenest Du einen leeren SQL Editor, trägst ein Table Create Statement und lässt das laufen. Danach kannst Du unter der Connection/Tabellen Deine neue Tabelle finden.

Hier ist Doku
https://firebirdsql.org/refdocs/lang...ate-table.html

Woher Du neue Verbindungen weißt? Versteh die Frage nicht. Du hast ein System auf deinem Rechner oder remote, mysql, firebird, postgres, ..
wählst das aus, baust die Verbindung auf, Treiber werden automatisch nachgeladen.

DualCoreCpu 10. Jan 2019 08:42

AW: Mit welchen Datenbankkomponenten afangen?
 
Danke, so weit. Ich entnehme dieser Doku, das die Anweisung Create Table überladen ist, um mit unterschiedlichen Parametersätzen arbeiten zu können.

Ich habe jetzt diese SQL Anweisung:

SQL-Code:
CREATE TABLE mediadb (
   mediakind varchar(3) NOT NULL,
   author varchar(30) NOT NULL,
   mediatitle varchar(30),
   musictitle varchar(40)
   )
Für's Erste sollen die Felder:

mediakey für Medienart (CD,DVD,MC,LP)

author für Filmregisseur oder Musiker

title für Filmtitel oder Name des Mediums (Pink Floyd, Wish you
were here). Es gab mal eine Langspielplatte dieses
Musikers mit diesem Namen.

musictitle
für den Namen des einzelnen Musikstückes


reichen.

Da beginnt schon die später notwendige Schaffung der Normalform der Datenbank. Zuerst aber will ich überhaupt erst mal eine Datenbanktabelle haben.

Ich habe jetzt die Komponenten:

DataSource1

IBDatabase1 mit defaultTransaction = IBTransaction1

IBTransaction1 mit DefaultDatabse = IBDatabase1

IBSQL1 mit Database = IBDatabase1, Transaction =
IBTransaction1


IBDataSet1 mit Database = IBDataBase1 und Datasource =
DataSource1

und 4 DBEdit Komponenten auf meinem Formular, die mit DataSouce1 verbunden sind.

Noch immer aber lassen sich keine Felder mit den DBEDit Komponenten verbinden. Als DataBaseName in der Komponente TIBDatabase habe ich mein SQL-Script verwendet, das ich nach obiger Anleitung mit DBeaver erstellt habe.

Habe auch in IBSQL meine CREATE TABLE Anweisung noch mal rein geschrieben. Auch das führt nicht zum Erfolg.

Was muss ich da noch machen?

Delphi.Narium 10. Jan 2019 08:58

AW: Mit welchen Datenbankkomponenten afangen?
 
Hast Du den DBEdits auch die zugehörigen Felder der Tabelle zugewiesen?

Meist DataField (oder so ähnlich) genannt. Du musst jedem dieser Felder eines Deiner im Create aufgeführten Felder zuweisen.

Die Querykomponente hat (vermutlich) eine Methode Open bzw. ein Attribut Active. Entweder im Objektinspektor Active auf true setzen, dann wird die Query beim Programmstart automatisch geöffnet oder "irgendwo" im Programmcode die Methode Open aufrufen.

Die Databasekomponente hat ebenfalls eine Methode zum Öffnen bzw. ein Attribut, dass Du im Objektinspektor setzen kannst. Auch hier musst Du für das Öffnen sorgen.

Dann muss Deine SQL-Komponente auch ein SQL haben, meist das Attribut SQL, im Objektinspektor für gewöhnlich als Stringliste mit 'nem Editor erreichbar. Da muss ein SQL rein, z. B.
Code:
select * from mediadb
Dieses SQL wird beim Öffnen der Abfragekomponente ausgeführt und sorgt dafür, dass die Datenbankkomponenten mit Inhalt gefüllt werden.

Um durch die Datenmenge scrollen zu können, solltest Du Dir noch 'nen TDBNavigator auf das Formular legen und den mit der DataSource verbinden.

jobo 10. Jan 2019 09:03

AW: Mit welchen Datenbankkomponenten afangen?
 
Du solltest Dir vielleicht doch mal ein Datenbank Tutorial anschauen.

SQL bietet verschiedene Befehlsgruppen an
DDL = Data Definition Language
DML = Data Manipulation

usw.

Create Table ist ein DDL Statement. Es wird einmalig ausgeführt, z.B. in DBeaver.
Dann braucht man weils praktisch ist ein paar Testdaten, wir brauchen DML, also hier Insert Statements. Wieder in DBeaver wie gesagt per Insert Statement oder Editieren von Datensätzen, wie Du es von früher kennst. Am Ende hoffentlich in Deiner Anwendung selbst.

Also
- Create einmalig extern
- Insert so oft Du willst, extern
- Dann Verdrahtung der Komponenten in Delphi

Die SQL Kompo enthält dann nicht das Create Statement (Tabelle ist schon in der Datenbank), sondern ein Select Statement.
Code:
select *|<KommaseparierteFeldliste> from <meineTabelle>

hoika 10. Jan 2019 09:11

AW: Mit welchen Datenbankkomponenten afangen?
 
Hallo,
Zitat:

Wenn ich nun noch die Datentabelle schreiben könnte
Das lass erst mal weg und lege die Tabelle mit DBeaver an.
Wie das geht, steht in der Hilfe des Programmes.

Sollte es einen SQL-Editor geben, hast du dein SQL ja bereits:
CREATE TABLE mediadb (
mediakind varchar(3) NOT NULL,
author varchar(30) NOT NULL,
mediatitle varchar(30),
musictitle varchar(40)
)

Um ein SQL-Tutorial kommst du nicht rum.
Auch in diesem Forum gibt es mehrere davon.
Fang an zu lesen und bei Unklarheiten frage einfach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz