![]() |
Datenbank: Interbase • Version: 7 • Zugriff über: TClientdataset
Mit welchen Datenbankkomponenten afangen?
Hallo,
ich will mal wieder eine Datenbank bauen, eine Medienverwaltung. Ich habe mit TClientDataset begonnen, verbunden mit TDatasorce. Habe zuerst 3 Felder im TClientDataset definiert die ich nun mit je einem DBEDit verbinden will. Das aber funktioniert nicht. Ich wollte die Datenmenge erzeugen, indem ich die Daten am Bildschirm eingebe, nämlich meine CD und DVD Sammlung. Ich habe somit keine Plattendatei, von der ich ausgehen könnte. Welche Datenbankkomponenten sollte ich nun einsetzen. Ich habe mit Delphi 10.3 Interbase und die zugehörigen Datenbankkomponenten installiert und auch die Palettenseite dbGo mit den SQL Komponenten und dbExpress mit den ADO Komponenten existieren. Mit welchen Komponenten fange ich optimalerweise an? Ich muss meine Datenbank erst erstellen, meine CD- und DVD Sammlung. Anders als in den Delphi Beispielprogrammen, wo schon Datenbaken existieren. Es muss doch eine Möglichkeit geben, die Datenbankanwendung zu erzeugen und dann erst die Daten einzugeben unter Benutzungng der von mir erzeugten Anwendung. Die Angaben oben sind willkürlich, nur TClientDataSet stimmt. Ich habe mich in Wahrheit auf noch gar keine Datenbank festgelegt, muss aber oben eine solche angeben, damit ich den Beitrag abschicken kann. |
AW: Mit welchen Datenbankkomponenten afangen?
Hallo,
für Interbase: Die beiden genannten Komponenten-Sammlungen haben eine Connection-Komponente mit einer Methode CreateDataBase. Du könntest dir aber auch erst mal IBExpert (Personal) besorgen und dort die DB erzeugen und auch Tabellen aktualisieren. |
AW: Mit welchen Datenbankkomponenten afangen?
Moin...:P
Zitat:
Datenbank (meine Meinung): Firebird (kostenlos, die Mutter ist Interbase): weil die Datenbankdatei aus einem File besteht, sie auch, unter bestimmten Vorraussetzungen, einfach kopierbar ist und die gleiche Datei sowohl für Server als auch für Embedded geeignet ist. Datenbankkomponenten: ideal: Devart UNIDAC (kostenpflichtig) :thumb:; Delphi FIREDAC (kostenpfichtig für Arbeiten mit einem Server) brauchbar: ZEOS für verschieden Datenbanken (kostenfrei) Admintool: ...für jedes Datenbanksystem das passende Firebird: wie schon gesagt...IBExpert (Personal) Hinweis (meine Meinung): Die Datenbank wird im Admin Tool erzeugt und gewartet (Tabellen erzeugen, Felder erzeugen). Datenbankoperationen die direkt auf der Datenbank arbeiten (Wartung), sollten im QT nicht vorkommen. Zitat:
![]() Wenn du die Dritte Normalform (3NF) schaffst sind wir stolz auf dich...:thumb: :hi: |
AW: Mit welchen Datenbankkomponenten afangen?
Wir haben zwar "nur" MySQL und Oracle mit Unidac im Einsatz, sind aber begeistert.
Kostet zwar ein paar €, aber ist es im Umfeld der kommerziellen SW-Entwicklung sein Geld wert. Bei MySQL haben wir auch nicht das Problem der GPL-Falle. |
AW: Mit welchen Datenbankkomponenten afangen?
Ich pflichte da Haentschman bei,
wenn du Enterprise hast solltest du auch FireDac Komponenten dabei haben. Das wäre auch einen Versuch Wert, und scheint die momentan bevorzugte Methode von EMBA zu sein. |
AW: Mit welchen Datenbankkomponenten afangen?
DBExpress würde ich definitiv links liegen lassen. Das ist ein Auslaufmodell wie vor 20 Jahren die BDE.
|
AW: Mit welchen Datenbankkomponenten afangen?
Moin...8-)
Zitat:
Tipp am Rande: Jeder der mich kennt weiß, daß ich keine fertigen SQL Statements in den Komponenten mag. Das erschwert dir den Austausch der Komponenten und das Testen des Statements. Mit FIREDAC und seinen MACROS (ich weiß nicht ob andere das auch machen) bindest du dich noch stärker an die Komponenten. :? Am Besten das Statement in einem Format ablegen das testbar bleibt, oder im QT zentral in einer Unit und nicht über den QT verteilt. :thumb: |
AW: Mit welchen Datenbankkomponenten afangen?
Nun mal langsam.
Es geht hier nich um ein professionelles Projekt sondern "nur" um eine Hobby-DB. Ausserdem wenn es richig gemacht wird(Einsatz ohne Special features) , dann kann man im Bedarfsfalle die Komponenten ruck zuck austauschen. Und natürlich DBxxxx-komponenten sollte man nur in Ausnahmefällen nuzen. Gruß K-H |
AW: Mit welchen Datenbankkomponenten afangen?
Für ein hobby Projekt sollten die IBX doch reichen, oder ?
|
AW: Mit welchen Datenbankkomponenten afangen?
Für Interbase ja.
|
AW: Mit welchen Datenbankkomponenten afangen?
|
AW: Mit welchen Datenbankkomponenten afangen?
Zitat:
![]() (Nun Teil von ![]() Oder ![]() |
AW: Mit welchen Datenbankkomponenten afangen?
:gruebel: Der TE hat noch nicht mal Fahrrad fahren gelernt...und ihr wollt ihm die Schlüssel zu eurem Porsche geben? ...mutig.
|
AW: Mit welchen Datenbankkomponenten afangen?
Der hat vier Räder, der kann nicht umkippen!
Gruß K-H |
AW: Mit welchen Datenbankkomponenten afangen?
Zitat:
Datenbankkomponenten sind Old School - ORM ist State of the Art. 8-) |
AW: Mit welchen Datenbankkomponenten afangen?
...ich wollte mich eigentlich nun raushalten. :roll:
Zitat:
Zitat:
|
AW: Mit welchen Datenbankkomponenten afangen?
Zitat:
Gruß K-H |
AW: Mit welchen Datenbankkomponenten afangen?
Zitat:
|
AW: Mit welchen Datenbankkomponenten afangen?
In diesem Fall, geht man dann um Fliegen.
|
AW: Mit welchen Datenbankkomponenten afangen?
:)
gruß K-H |
AW: Mit welchen Datenbankkomponenten afangen?
.. und noch einer von Wilhelm Busch:
Wenn einer, der mit Mühe kaum geklettert ist auf einen Baum schon denkt, dass er ein Vogel wär, so irrt sich der ... |
AW: Mit welchen Datenbankkomponenten afangen?
Die OT Krone:
Zitat:
Sherlock |
AW: Mit welchen Datenbankkomponenten afangen?
Da kann ich mit:
Zitat:
|
AW: Mit welchen Datenbankkomponenten afangen?
Danke zuerst für alle Eure Antworten.
Ich bevorzuge zuerst, hauseigene Delphi Komponenten zu verwenden, die ich mit dem Delphi Produkt schon habe. Später, wenn ich in Datenbankgestaltung mehr drauf habe, kann ich immer noch bessere kaufen. Zum Einstieg sollen es die hauseigenen tun. Nun wollte ich die IBEbpert Personal von der Embarcadero Weseite runter geladen, ausprobieren. Bekomme aber gesagt, die Version sei zu alt und dann bricht das Programm ab. Waum ist es nicht erlaubt, für die ersten Versuche eine ältere Version zu verwenden. Ich habe versucht, mich auf der IBExpert Webseite zu registrieren. Habe eine Email Adresse bei xmail.net, an die aber keine Registierungsmail geschickt wurde, mit der ich meine Email Adresse bestätigen kann, damit ich registriert werde und den Download starten kann. Habe dieselbe xmail.net Adresse verwendet, mit der ich mich für Delphi 10.3 registriert habe. Warum haben die sich so zickig bei Interbase und warum erlaubt mir Embarcadero nicht deren ältere IBExpert-Personal Version zu verwenden. Wozu muss ich immer die allerneuste Software haben, zumal als Datenbank Anfänger? Motz! Wo gibt es eine wirklich freie IBExpert Version zum Download? |
AW: Mit welchen Datenbankkomponenten afangen?
|
AW: Mit welchen Datenbankkomponenten afangen?
Danke, gut und schön, aber ich kann mich bei IBExpert nicht registrieren aber ohne Registrierung kein Download. Habe extra andere Email-Adresse verwendet.
Was kann ich da noch machen? Gibt es den IBExpert nicht noch irgendwo anders. Warum geht die Registrierung hier nicht? Da behaupten die bei IBExpert, die Registrierung sei komplett frei. Ist sie abner nicht,sonst gäbes es nicht solche Probleme mit der Registrierung. Ich nutze Edge Browser mit Standardeinstellungen, wie sie beim neu installierten Windows 10 bestehen. |
AW: Mit welchen Datenbankkomponenten afangen?
Hallo,
also ich hatte keine Probleme. Aber jetzt wäre doch Anlass, schnell auf Chrome umzusteigen... |
AW: Mit welchen Datenbankkomponenten afangen?
![]() |
AW: Mit welchen Datenbankkomponenten afangen?
Wenn's um einfach und mit vorhandenen Delphimitteln gehen soll, dann nimm doch die ADO-Komponenten. Für zumerstmal grundsätzliches Lernen reicht das vollkommen aus.
Damit legt man sich auch nicht direkt auf 'nen bestimmten Datenbanktypen fest. Es kann an Datenbanken quasi alles, wozu es 'nen ODBC-Treiber gibt und was das System sonst so an Datenbanktreibern zur Verfügung stellt. Ganz einfach ist 'ne Access-Datenbank. Access braucht man dazu natürlich nicht. Man muss sich über die TADOConnection-Komponente einfach 'ne Verbindungszeichenfolge erstellen, das geht dialoggesteuert und ist nicht so kompliziert, wie es klingt. Wenn man da 'ne Accessdatenbank (Jet-Engine) auswählt, wird man auch gefragt, ob man ggfls. 'ne neue Datenbank haben will. Die wird dann erstellt. Und für 'ne CD-/DVD-...Verwaltung zu Übungszwecken, reicht das vollkommen aus. Man braucht keinen Download von was auch immer, keine Registrierung, wo auch immer, keine Installation von was auch immer ... Einfach Delphi nehmen und machen ;-) |
AW: Mit welchen Datenbankkomponenten afangen?
"Einfach ADO und gut" find ich gut.
Und Versionskonflikte/-abhängikeiten hat Emba sicher nicht erfunden. Wenn ich auf Java Projekte o.ä. schaue ist es bei Delphi doch recht übersichtlich. Access ist im Prinzip ok, aber letztlich "Autsch". Single File DB ist natürlich charmant, bei Access gibt's aber so viel Absonderlichkeiten auf SQL und Funktionsseite, dass ich das zwecks "gar nicht erst dran gewöhnen" nicht empfehlen würde. Single File geht auch gut mit Firebird (embedded), kann problemlos aufgeblasen werden und ist viel näher an den Standards als Access. DBeaver ist prima, wenn ich mich auch immer wieder wundere, dass mal was funktioniert und mal nicht (Code Completion, ..). Ach prima ist eigentlich untertrieben, eine sehr gute kostenlose und vielseitige DB IDE. |
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. |
AW: Mit welchen Datenbankkomponenten afangen?
Bei SQLite oder FireBird embedded muss man keinen Server installieren.
|
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:
|
AW: Mit welchen Datenbankkomponenten afangen?
Zitat:
|
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. |
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 ![]() 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. |
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:
Für's Erste sollen die Felder:
CREATE TABLE mediadb (
mediakind varchar(3) NOT NULL, author varchar(30) NOT NULL, mediatitle varchar(30), musictitle varchar(40) ) 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? |
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:
Dieses SQL wird beim Öffnen der Abfragekomponente ausgeführt und sorgt dafür, dass die Datenbankkomponenten mit Inhalt gefüllt werden.
select * from mediadb
Um durch die Datenmenge scrollen zu können, solltest Du Dir noch 'nen TDBNavigator auf das Formular legen und den mit der DataSource verbinden. |
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>
|
AW: Mit welchen Datenbankkomponenten afangen?
Hallo,
Zitat:
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 18:33 Uhr. |
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