Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung? (https://www.delphipraxis.net/185239-welche-datenbank-und-zugriffskomponenten-fuer-kleine-datenbank-anwendung.html)

Helmi 24. Mai 2015 18:04

Datenbank: --- • Version: --- • Zugriff über: ---

Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Hallo,

da ich, was das Thema Datenbank angeht, bis auf die gute alte BDE sonst keine Erfahrungen habe und mich
die vielen Threads über Datenbanken mehr verwirrt haben als Klarheit zu schaffen, frag ich mal direkt:

Ich möchte mir ein kleines Progrämmchen schreiben, mit dem ich mir Blutdruckwerte mit Datum/Uhrzeit etc.
abspeichern kann und dann (irgendwann) auswerten kann (z. B. Durchschnitt allgemein, Durchschnitt pro
Woche, pro Monat etc.).

Natürlich könnte man das Ganze auch Non-Datenbank machen, z. B. INI-Dateien oder Text-Dateien.

Aber das wäre ein nettes kleines Progrämmchen um sich mit neueren Datenbanken und SQL zu beschäftigen.

Nur steh ich jetzt, wie im Elektronikfachgeschäft vor einem riesigen Regal, staunend vor der Menge an
vorhandenen Datenbanken und Zugriffskomponenten und weiss eigentlich nicht, was am Besten (bzw. am
einfachsten erlernbar/anwendbar) dafür geeignet ist.

Welche Datenbank und Zugriffskomponenten würden sich hierfür eignen? - am Besten natürlich kostenlos
und umsonst.

[edit]
Ich vergaß zu erwähnen: Mein Server braucht nichts von meinem Gesundheitszustand wissen - von daher
soll die Datenbank local sein

jobo 24. Mai 2015 18:42

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
SQL macht von der DB Seite keinen (nennenswerten) Lernunterschied, egal was Du wählst. Sql ist Sql, es gibt verschieden aktuelle Standards SQL '92 und höher, der von vielen Systemen zu guten Teilen abgedeckt wird, also untereinander kompatibel / austauschbar. Es gibt Ausnahmen, Access bspw. ist etwas entartet, aber auch schon overkill oder besser zuviel overhead.
Die DB selbst unterscheiden sich in den (mitgelieferten) Tools (Administration, Entwurf, ..), aber der SQL Dialekt ist weitgehend (rate mal 95 % oder höher identisch). Die eine bietet ein paar mehr Funktionen (im wahrsten Sinne des Wortes), die andere weniger.
Eine Empfehlung wäre sqLite. Eigenet sich besonders für Einzelplatzsysteme, sehr kleiner Footprint, kleine "Gemeinheit" wäre die interne Typenbehandlung, die einem u.U. in die Hacken laufen kann. Ist nicht der super Performer, aber egal. Ist das Standardsystem auf Android / iPhone, aber auch auf PC weit verbreitet. Weiß leider nicht genau, wie gut die Unterstützung out of the box bei Deiner Delphi Version ist, sollte aber unproblematisch sein.
Dann noch firebird embedded, dazu gibt's hier auch ne Menge know how. Firebird embedded kann ohne Probleme zu einer echten Server DB werden (im Gegensatz zu sqLite).
Firebird bietet außerdem die Möglichkeit, selbst programmiert werden zu können, falls Dir der Sinn danach steht.

Helmi 24. Mai 2015 20:19

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Feuervogel (also Firebird) klingt schon nicht schlecht.
Womit greift man am einfachsten auf die FireBird embedded Version drauf?

DeddyH 24. Mai 2015 20:28

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zeos, IBObjects oder UIB, wenn es nichts kosten soll, ansonsten kann ich IBDAC von DevArt empfehlen.

mkinzler 24. Mai 2015 20:28

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
IBX, FireDAC, Zeos, UniDAC, ...

Helmi 24. Mai 2015 20:51

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Danke für die Antworten!

Hab bei der Kombination "firebird embedded mit ZEOS" folgende Anleitung gefunden:
http://www.delphi-treff.de/tutorials...-und-firebird/

Popov 24. Mai 2015 23:09

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Du scheinst dich bereits entschieden zu haben, aber wenn es eine DB für Pillepalle sein soll, kann man auch MyBase nehmen. Ist eine Nummer anspruchsvoller als INI. Wie gesagt, wenn es eher nur eine Tabelle sein soll.

Helmi 25. Mai 2015 08:42

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von Popov (Beitrag 1302902)
Du scheinst dich bereits entschieden zu haben, aber wenn es eine DB für Pillepalle sein soll, kann man auch MyBase nehmen. Ist eine Nummer anspruchsvoller als INI. Wie gesagt, wenn es eher nur eine Tabelle sein soll.

Nette Datenbank, muss ich schon sagen.

Würde für mein Vorhaben bestimmt ausreichen - ich möchte mich aber mal mit SQL beschäftigen

Unabhängig davon, find ich MyBase recht interessant (hab mir dieses Tutorials durchgelesen.
Leider find ich keinen Download für die MyBase - weiss jemand wo man die herbekommt?
hat sich erledigt :-)

Helmi 2. Jun 2015 17:32

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Kennt/Hat jemand eine Seite, auf der (gut) beschrieben ist, wie man eine Datenbank ins Projekt einbindet?
Ich häng mit dem Thema irgendwie grad in der Luft.
Ich kann mir zwar die einzelnen Komponenten runterladen, aber dann steh ich irgendwie wie der Ochs vorm Berg.

mkinzler 2. Jun 2015 17:35

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Z.B. hier:
http://www.delphi-treff.de/tutorials/datenbanken/

Dejan Vu 2. Jun 2015 19:00

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
MS SQL-Server Compact und ado wäre auch noch eine Alternative. In der Industrie ist dieser Dialekt weiter verbreitet, als Firebird. Du kannst dir auch die Express- variante laden, dann ist gleich das komplette Management Studio dabei. Ich persönlich würde Microsoft nehmen, weil das Gelernte eher auf dem freien Markt gesucht wird, als FB-Kenntnisse. Aber wenn Du das nur hobbymäßig machst, reicht eben auch FB.

Und: Ja, es gibt eine Größenbegrenzung bei der freien Express-Variante von -glaube ich- 10 GB und nur einem Kern. Ist aber trotzdem schneller als FB.

Der Vorteil bei der FB-Embedded-Variante (und gleichzeitig der Nachteil eines Servers) ist, das Du bei der Embedded-Variante von FB oder SQLite nur eine DLL einbinden musst (wobei es -glaube ich- für SQLite sogar eine komplett in Delphi geschriebene Variante gibt).

Helmi 2. Jun 2015 21:10

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
das mit der MS-Server-Variante klingt gut

meinst du diese hier?

Popov 2. Jun 2015 22:06

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Das sollte sie sein. Meiner Kenntnis nach ist die auch in Visual Studio Express enthalten.

Headbucket 3. Jun 2015 07:30

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Hallo Helmi,

ich habe mich auch vor einigen Monaten das erste mal mit Datenbanken beschäftigt und habe auch mit dem Microsoft SQL Server begonnen. Dieser ist meiner Meinung nach gut verständlich aufgebaut.
Zitat:

Zitat von Helmi (Beitrag 1303949)
das mit der MS-Server-Variante klingt gut

meinst du diese hier?

Hier kannst du die Express-Version ohne nervige Microsoft-Anmeldung herunterladen: Microsoft SQL Server 2014 Express
Dort gibt es dann nochmal verschiedene Downloads. Z.B. NUR die Datenbank oder NUR das Management-System. Du brauchst dann natürlich am besten beides: SQLEXPRADV_x64_DEU.exe

Dann am besten analog der hier geposteten Tutorials ein TDataModule mit TADOConnection (+TADOQuery +TDataSource) verwenden, um ganz bequem auf die Datenbank zuzugreifen.

Grüße
Headbucket

MrSpock 3. Jun 2015 07:58

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Also Firebird in den Hobbybereich zu disqualifizieren und dafür MS zu empfehlen halte ich für zumindest diskussionswürdig. Ich habe eine ganze Reihe Datenbankanwendungen bei Kunden laufen und die setzen alle auf Firebird. Firebird ist aus Borlands Interbase in der Version 6.0 entstanden und läuft auf Windows (32- and 64-bit), verschiedenen Linux Versionen (32- and 64- bit), Solaris (Sparc and Intel), HP-UX (PA-Risc) und MacOS X. Ich habe es auch auf einem Apache Linux Server und auf OSX laufen. Das System ist schnell und sehr stabil. Ich würde entweder Firebird oder bei wirklich kleinen Datenmengen MyBase empfehlen. Letztere aber mit dem Nachteil, dass sie kein SQL Interface hat.

Helmi 3. Jun 2015 08:20

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Danke für die Informationen!

MyBase schaut echt nicht schlecht aus - damit könnt ich mir vorstellen, öfters noch etwas zu machen.

Ist es denn in MyBase möglich, Auswertungen zu machen?
Also z. B. so sinngemäß: "gib mir alle Datensätze aus, die den Namen Hugo beinhalten"

Ansonsten möchte ich einfach mal in die Datenbank-Programmierung mittels SQL hineinschnuppern.

Die MS-Server-Datenbank werd ich mir mal anschauen.

Auch FireBird interessiert mich - aber da fehlt mir einfach noch die Anfang.
Ich werd mir mal das Tutorial auf Delphi-Treff zu Gemüte führen...

mkinzler 3. Jun 2015 08:42

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Grundsätzlich läuft es ja bei allen Datenbanken nach dem selben Schema. Vorteil bei FireBird ist es, dass man mit dem selben Code sowohl auf eine "embedded Version" wie auch einem installierten Server zugreifen kann. Auch der Leistungsumfang ist hierbei nahezu identisch ( keine Benutzerverwaltung bei FB <3). Auch das Datenbankformat ist das selbe ( man kann die mit der embedded erzeugte Datenbank einfach von der Serverversion weiterbearbeiten und umgekehrt). Im Gegensatz unterscheidet sich MSSQL compact von den großen Versionen (express, SE, ...)

MrSpock 3. Jun 2015 09:07

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Für das Vertrautwerden mit Firebird empfehle ich IBExpert. Von diesem Programm gibt es für private Zwecke auch eine kostenlose Version. Damit kannst du Tabellen anlegen, ändern, anzeigen, StoredProcedures schreiben, SQL Statements ausprobieren, usw.

Popov 3. Jun 2015 09:12

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
@Helmi

Oder du nimmst MySQL. Jeder Hinz und Kunz (sorry) nimmt MySQL, vor allem für seine Webanwendungen. Und wie installiert man MySQL auf dem heimischen Rechner? Nun, es gibt da die eine Methode, dann eine andere oder man macht es sich einfach und nimmt XAMMP. Das ist vielleicht leicht Overkill, denn man bekommt den Apache-Webserver, PHP, MySQL, phpMyAdmin, usw. gleich mit, aber die Installation ist simpel. Und man arbeitet mit einer bekannten Datenbank, für die es Literatur und Tutorials wie Sand am Meer gibt.

mkinzler 3. Jun 2015 09:15

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Wenn dann MariaDB, denn mit MySQL tappt man mit großer Wahrscheinlichkeit in eine Lizenzfalle.

Harry Stahl 5. Mai 2016 23:06

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von mkinzler (Beitrag 1303943)

Also diese Seite ist übrigens leider immer noch down.

Aber ich wärme diesen Thread noch mal auf.

Einerseits

* mit der Frage, welche Erfahrungen der Thread-Ersteller nun nach einem Jahr gemacht hat (und was er nun nutzt) und

andererseits

* mit der ergänzenden Frage, ob verständliche Literatur zur Programmierung mit Delphi-Datenbanken existiert, bzw. was man da empfehlen kann.

Die Datenbank-Beispiele, die Delphi mitliefert, damit kann ich leider gar nichts anfangen. Ein Haufen DB-Komponenten auf den Formularen und wenn man eine Demo kompiliert und ausführt, weiß man damit gar nichts anzufangen, eine (existierende), passende Datenbank ist meistens nicht auffindbar und auch ansonsten völlig unklar, was mir diese Demo eigentlich sagen will.

Ich habe gerade meine ersten Erfahrungen mit ClientDataset und DBGrid gesammelt und würde gerne etwas mehr in die Materie Datenbanken eintauchen (aber mehr praxisorientiert). Habe zwar noch ein älteres Buch "Win32-Datenbankprogrammierung", aber das bezieht sich noch auf Delphi 6 und kennt alle neueren DB-Systeme daher noch nicht.

p80286 6. Mai 2016 00:24

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1337583)
Ich habe gerade meine ersten Erfahrungen mit ClientDataset und DBGrid gesammelt und würde gerne etwas mehr in die Materie Datenbanken eintauchen (aber mehr praxisorientiert). Habe zwar noch ein älteres Buch "Win32-Datenbankprogrammierung", aber das bezieht sich noch auf Delphi 6 und kennt alle neueren DB-Systeme daher noch nicht.

Nichts für ungut, aber Datenbanken gab es schon vor Delphi. Mit anderen Worten das Grundgerüst der "Datenbank-Denke" findest Du auch schon in älterer Literatur. Etwas neueres brauchst Du erst, wenn Du den Unterschied z.B. der verschiedenen SQL-Dialekte kennen mußt. Das Design einer DB ist weitgehend unabhängig von der DB (bei relationalen) und vollkommen unabhängig von der Programmiersprache des Clients.

Gruß
K-H

jobo 6. Mai 2016 06:31

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1337583)
* mit der ergänzenden Frage, ob verständliche Literatur zur Programmierung mit Delphi-Datenbanken existiert, bzw. was man da empfehlen kann.
..
passende Datenbank ist meistens nicht auffindbar und auch ansonsten völlig unklar, was mir diese Demo eigentlich sagen will.
..
in die Materie Datenbanken eintauchen (aber mehr praxisorientiert). Habe zwar noch ein älteres Buch "Win32-Datenbankprogrammierung", aber das bezieht sich noch auf Delphi 6 und kennt alle neueren DB-Systeme daher noch nicht.

Mir ist kein aktuelles Buch bekannt, was sicher einerseits daran liegt, dass ich nicht mehr aktiv mit Delphi arbeite, andererseits aber wohl die Zeit von Büchern, vor allem aber von Nischenbüchern vorbei ist. Die alten Hasen haben schon vor einiger Zeit die Plattform verlassen und schreiben nun über andere Dinge.
"Delphidatenbanken" gibt es in dem Sinne nicht, Du müsstest vielleicht sagen, was Du damit meinst.
Die Delphi-Installationen haben früher meist den Interbase Server installiert und dort auch Demo DB bereitgestellt, passend zu den Examples.

Wie p80286 sagt, hat sich an den Kernkompetenzen von Delphi bezogen auf alte Bücher auch nicht viel geändert. Zumindest wenn man von den Techniken rund um datensensitiven Komponenten spricht.

Heute würde man vielleicht andere Wege gehen, wenn man neu anfängt. JSON, Web-Services, REST, hängt sicher auch davon ab, was man umsetzen möchte.

Konkrete Systeme
- SQLite, besonders wenn man Mobile Systeme im Blick hat
- Firebird, besonders nach der V 3.0, die nun endlich da ist. Interessant wegen der lokalen Server Engine. Programme können damit standalone betrieben werden oder als client/server.
- postgresql, einfach ein mächtiges und robustes OpenSource System
- die großen kommerziellen Anbieter, MSSQL, Oracle (nicht mySQL)

Idealerweise sollte man etwas von Datenmodellierung verstanden haben, wenn man mehr möchte, als irgendwelche Listen zu verwalten. SQL ist standardisiert, leider nicht von allen Herstellern gleich umgesetzt.

Bleibt vielleicht am ehesten die Frage, welche Komponenten man einsetzt. Da bin ich nicht auf dem Laufenden.

Lemmy 6. Mai 2016 07:08

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
[QUOTE=Harry Stahl;1337583]
Zitat:

Zitat von mkinzler (Beitrag 1303943)
Z.B. hier:

* mit der ergänzenden Frage, ob verständliche Literatur zur Programmierung mit Delphi-Datenbanken existiert, bzw. was man da empfehlen kann.

englisch scheidet aber glaube ich bei dir aus? Sonst würde ich dir das Buch über ClientDataset von Carry Jensen empfehlen. wobei das halt speziell ClientDataset behandelt und sich nicht der Datenbankproblematik widmet.

Allgemein Datenbanken gibt es eine handvoll Tutorials - ich habe ein paar zu IBX geschrieben, die sind jetzt um die 15 Jahre alt, aber bzgl. der Anwendung gibt es selbst heute bei Verwendung von Firedac anstelle von IBX nur marginale Unterschiede.

Ich finde SQLite zwar nicht toll, aber warum fängst Du nicht einfach mal hier an:
http://docwiki.embarcadero.com/RADSt...nk_mit_FireDAC

und erweiterst das dann nach und nach - und für konkrete Fragen gibt es ein gutes Forum :-)

TRomano 6. Mai 2016 09:24

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Hallo Harry,

Literatur zu Datenbanken gibt es am Markt ja reichlich. Delphi hat "von Natur aus" immer Interbase/Firebird unterstützt, später kamen in den Professional und Enterprise-Versionen
andere hinzu. Aber Delphi-Datenbanken gibt es nun wirklich nicht, aber Delphi hat sich schon immer als Datenbank-Tool positioniert.

Wie einige Vorredner schon empfahlen könntest Du als Datenbank Firebid einsetzen, da Dir diese Software eben gewährleistet,
dass Du je nach Einsatzzweck die lokale (heißt hier embedded) oder die C/S-Engine einsetzt. Helen Borrie hat dazu (Firebird) mindestens drei gute Bücher geschrieben. Hier sind
wirklich alle Bereiche der Administration und Entwicklung abgehandelt. Ab Version 2 is Firebird empfehlenswert, in der 3.0 sind viele gute Dinge hinzugekommen.

Es gibt auch deutschsprachige Literatur zu allgemeinem SQL, was für die grundsätzlichen Dinge auch reicht. Datenbankspezifische Dinge gibt es dann in der angebotenen Literatur
der Hersteller (über T-SQL, PL/SQL, Reporting-Services usw.).

Gruß Thomas

hstreicher 6. Mai 2016 11:51

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Delphi Datenbanken : BDE , TurboDB, (veraltet) Turbopower FlashFiler

Bernhard Geyer 6. Mai 2016 11:58

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von hstreicher (Beitrag 1337630)
Delphi Datenbanken : BDE , TurboDB, (veraltet) Turbopower FlashFiler

BDE ist aber eine Zugriffstechnik und keine DB. Das wäre Paradox und dBase.
TurboDB ist auch nicht mehr auf Delphi beschränkt.

Reine Delphi-Datenbanken dürfte es wahrlich nicht mehr geben. Aber es gibt ein paar die ihren Ursprung in dem Bereich haben.
Reine Delphi-Datenbank dürft noch die (immer noch vorhandene) Mini-DB-Engine auf XML-Basis sein.

mm1256 6. Mai 2016 15:54

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1337632)
Reine Delphi-Datenbanken dürfte es wahrlich nicht mehr geben.

Doch, gibt es noch, und sogar eine sehr gute: NexusDB
Das ist der Nachfolger von Turbopower's FlashFiler. Entwickelt in Australien, Hauptprogrammierer ist ein Deutscher, Thorsten Engler.

Es gibt 3 Möglichkeiten die Datenbank anzuwenden: Embedded Version (keine externen Dateien oder DLL's, keine Installation), Client-Server-Version (Protokolle: TCP/IP, Named Pipe und Shared Memory) mit externem DB-Server, oder mit einem eigenen DB-Server den man in seine Anwendung linken kann, die dann gleichzeitig den Clients als DB-Server zur Verfügung steht. Der Datentransfer aller Protokolle kann verschlüsselt werden.

Clients für Android und iOS sind in der Pipeline und somit wird man (hoffentlich bald) auch von mobilen Geräten aus direkten Zugriff auf die Datenbank haben.

Die Datenbank ist vollständig in Delphi programmiert. Man bekommt den kompletten Delphi-Quellcode (nicht kostenlos, ist aber nicht so teuer, wie man glaubt). Und, man kann aus dem Quellcode sehr viel lernen.

Harry Stahl 6. Mai 2016 19:03

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Erst mal recht herzlichen Dank für Eure teilweise recht umfangreichen Antworten.:thumb: Das hat mir auf jeden Fall schon mal mehr Orientierung verschafft.

Einige kurze Rückmeldungen:

Zitat:

Zitat von Lemmy (Beitrag 1337603)
Ich finde SQLite zwar nicht toll, aber warum fängst Du nicht einfach mal hier an:
http://docwiki.embarcadero.com/RADSt...nk_mit_FireDAC

und erweiterst das dann nach und nach - und für konkrete Fragen gibt es ein gutes Forum :-)

Das werde ich auf jeden Fall mal ausprobieren, Danke.

Zitat:

Zitat von Lemmy (Beitrag 1337603)
englisch scheidet aber glaube ich bei dir aus? Sonst würde ich dir das Buch über ClientDataset von Carry Jensen empfehlen. wobei das halt speziell ClientDataset behandelt und sich nicht der Datenbankproblematik widmet.

Nö, wie kommst Du darauf. War gestern Abend per Zufall auf das Buch gestoßen, habe ich mir direkt bestellt, sollte morgen da sein.


Zitat:

Zitat von jobo (Beitrag 1337598)
Konkrete Systeme
- SQLite, besonders wenn man Mobile Systeme im Blick hat
- Firebird, besonders nach der V 3.0, die nun endlich da ist. Interessant wegen der lokalen Server Engine. Programme können damit standalone betrieben werden oder als client/server.

Da diese mehrfach genannt wurden und von der Leistungsbeschreibung interessant sind, werde ich mir diese mal näher ansehen. Gibt es irgendwo Beispiele für FireBird? Bei den Delphi-Demos scheint nichts dabei zu sein.

Zitat:

Zitat von TRomano (Beitrag 1337614)
Wie einige Vorredner schon empfahlen könntest Du als Datenbank Firebid einsetzen, da Dir diese Software eben gewährleistet,
dass Du je nach Einsatzzweck die lokale (heißt hier embedded) oder die C/S-Engine einsetzt. Helen Borrie hat dazu (Firebird) mindestens drei gute Bücher geschrieben. Hier sind
wirklich alle Bereiche der Administration und Entwicklung abgehandelt. Ab Version 2 is Firebird empfehlenswert, in der 3.0 sind viele gute Dinge hinzugekommen.

Das sind 3 Bücher, alle so um die 500 Seiten. Gibt es auch etwas kompakteres?:wink:

Bernhard Geyer 6. Mai 2016 19:52

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von mm1256 (Beitrag 1337658)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1337632)
Reine Delphi-Datenbanken dürfte es wahrlich nicht mehr geben.

Doch, gibt es noch, und sogar eine sehr gute: NexusDB

Mit reiner Delphi-DB meinte ich das nur von Dephi (bzw. C++-Builder) ein Zugriff möglich ist. Da Nexus PHP/ADO.NET und ODBC unterstütz ist es (nach meiner Definition) keine reine Delphi-Datenbank mehr.

Harry Stahl 6. Mai 2016 21:21

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Lemmy (Beitrag 1337603)
Ich finde SQLite zwar nicht toll, aber warum fängst Du nicht einfach mal hier an:
http://docwiki.embarcadero.com/RADSt...nk_mit_FireDAC

und erweiterst das dann nach und nach - und für konkrete Fragen gibt es ein gutes Forum :-)

So, das habe ich nun mal gemacht. Das Beispiel ist insofern nicht schlecht, als dass es mir zeigt, wie ich eine Datenbank öffne und es letztlich deutlich wird, dass ich , je nach FDPhys*DriverLink offensichtlich eine ganze Reihe unterschiedlicher Datenbanktypen öffnen kann.

Soweit so gut.

Leider funktioniert das Beispiel nicht. Kann zwar die Verbindung herstellen und ohne Fehlermeldung das Execute ausführen, allerdings sind für Name und Department keine Einträge vorhanden (siehe anliegenden Screenshot).

Woran kann das liegen?

Und weitere Frage: Mal angenommen, das wäre jetzt mein Programm, müssen hierfür irgendwelche DLL-Dateien weitergegeben werden, damit es auch auf anderen Computern funktioniert (so wie früher die Midas.dll)?

haentschman 7. Mai 2016 06:19

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Moin...:P
Zitat:

Mal angenommen, das wäre jetzt mein Programm, müssen hierfür irgendwelche DLL-Dateien weitergegeben werden
Das ist abhängig von der verwendeten Datenbank und den verwendeten Zugriffskomponenten... da mußt du schon konkreter werden. :zwinker:

p80286 7. Mai 2016 06:30

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1337676)
Soweit so gut.

Leider funktioniert das Beispiel nicht. Kann zwar die Verbindung herstellen und ohne Fehlermeldung das Execute ausführen, allerdings sind für Name und Department keine Einträge vorhanden (siehe anliegenden Screenshot).

Woran kann das liegen?

Ich behaupte mal, daß die Feldnamen ('Name','Department') nicht stimmen. Mit 'NAME' könnte es z.B. funktionieren, oder aber sie sind überhapt nicht vorhanden.
Versuch mal etwas ähnliches wie:
Delphi-Quellcode:
  outputMemo.Text:= '';''
    // Die Feldnamen aus der Query hinzufügen.
    dummy:='';
    for i:=0 to query.fields.count-1 do
      dummy:=dummy+query.fields[i].Name+'|';
    outputMemo.Lines.Add(dummy);
    // Dem Memo eine Zeile pro Datensatz in der Tabelle hinzufügen.  
    while not query.Eof do
    begin
      outputMemo.Lines.Add(String.Format('|%8d|%-25|%-25s|',
        [query.FieldByName('ID').AsInteger, query.FieldByName('Name').AsString,
        query.FieldByName('Department').AsString]));
      query.Next;
    end;
Dann sollten in der Kopfzeile die von der Query zurückgegebenen Feldnamen auftauchen.

U.U. ist auch folgendes möglich
Delphi-Quellcode:
for i:=0 to query.fields.count-1 do
  dummy:=query.fields[i].asString;
outputMemo.Lines.add(dummy);
um die Feldinhalte ohne Namenskenntnis zurück zu geben.

Gruß
K-H

jobo 7. Mai 2016 08:29

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zu dem leeren Formular:
Entweder, es sind keine Daten drin oder es fehlt eine Aktivierung/ Öffnen der Datenmenge oder es ist beim Öffnen ein Fehler aufgetreten, der irgendwie unterschlagen wird.
Nimm einen Datenbankexplorer und schau in die Tabellen rein oder trag damit gleich selbst Datensätze ein.

Zitat:

Zitat von Harry Stahl (Beitrag 1337669)
Zitat:

Zitat von jobo (Beitrag 1337598)
Konkrete Systeme
- SQLite, besonders wenn man Mobile Systeme im Blick hat
- Firebird, besonders nach der V 3.0, die nun endlich da ist. Interessant wegen der lokalen Server Engine. Programme können damit standalone betrieben werden oder als client/server.

Da diese mehrfach genannt wurden und von der Leistungsbeschreibung interessant sind, werde ich mir diese mal näher ansehen. Gibt es irgendwo Beispiele für FireBird? Bei den Delphi-Demos scheint nichts dabei zu sein.

Firebird sollte sehr kompatibel zu Interbase sein. Und nochmal, egal welches Relationale Database Management System RDBMS Du verwendest, die Handhabung(!) in Delphi ist haezu identisch*1. Die Entscheidung für ein RDBMS ist verwoben mit der Frage, welche Zugriffskomponenten in D verwendet werden (sollen), einschließlich der Zukunftsperspektive dieser Komponenten und ggF der DLL Frage, die Du gestellt hast.
Wirkliche Unterschiede gibt es dann höchstens bei der Definition der Connection. Abhängig von der Technologie werden hier mal Dateien angegeben, bei anderen dann benannte DB, ..
Das ist ja (u.a) genau ein Punkt, womit D mal angetreten ist, die (immergleichen) Datenbankkomponenten als Abstraktionsschicht zu beliebigen DB. Siehe auch ODBC, JDBC, ...
Ein Code und eine beliebige DB dahinter.

*1Und zuletzt: So zu programmieren, dass die DB austauschbar ist, wäre eine Strategie oder Vorgehensweise, da die verschiedenen Systeme zwar einen Standard unterstützen (nie zu 100%), am Ende aber doch auch eigene Wege gehen und unterschiedliche Anforderungen bedienen, wird mit dem Moment der Nutzung spezifischer SQL Funktionen aus der austauschbaren DB ein Zwang oder eine "Ehe" oder wie man das auch immer nennen möchte.
DLL spielen dabei auch eine Rolle, das könnte man so zusammenfassen. Jedes System braucht eine Clientkomponente in Form einer oder mehrerer DLL. Die wird entweder mitgeliefert/verschenkt, gekauft, durch den Kunden selbst installiert oder ist das gleiche wie der Server (besonders SQLite, so ähnlich auch bei Firebird).

Zu allerletzt zu den Firebird Beispielen. Wenn Du irgendein Datenbankbeispiel nimmst und es ist nicht für Firebird, kannst Du es dennoch mit großer Wahrscheinlichkeit in Firebird umsetzen.
Z.B.
Code:
CREATE TABLE Employee (
    Employee_ID int NOT NULL,
    NAME       varchar (50) NOT NULL,
    DESCRIPTION varchar (250) NOT NULL
)
Kannst Du in vielen verschiedenen DB verwenden. Nimm ein SQL Tool Deiner Wahl, erzeuge damit eine DB, lass das Script laufen und Du kannst mit dem Tutorial loslegen. Manchmal gibt es unterschiedliche Namen für die Typen, aber es wird Dir sicher nicht schwer fallen, ein INT gegen INTEGER oder NUMBER auszutauschen. Auf die Art kannst Du "beliebige" Tutorials verwenden. Es gibt natürlich einen Haufen anderer, kleiner Gemeinheiten, die dürften sich aber spätestens hier im Forum schnell und einfach lösen lassen. SQLite hat zum Beispeil eine recht ungewöhnliche Art der Spaltentypisierung. AutoInc Felder sind auch gern überall etwas anders, alles aber halb so wilrd...

Sir Rufo 7. Mai 2016 08:54

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
@jobo

Solche austauschbaren Daten-Layer, die mit x Systemen sprechen können muss man natürlich abstrahieren. Eine gute Abstraktion wäre z.B. ein REST Server und JSON als Austauschformat.

Mit dem REST Server muss die Anwendung aber nicht direkt sprechen, sondern ich kann das auch in eine DLL auslagern. Ob diese DLL dann wirklich mit einem REST Server spricht oder mit einer lokalen SQlite oder MySQL oder whatever ist der Anwendung schnurz.

Die Zugriffsspezialitäten der Systeme liegen jetzt in der DLL und die Anwendung ist völlig losgelöst davon.

jobo 7. Mai 2016 09:06

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Richtig, ich hab ja schon anfangs angedeutet, dass man heute vlt. nicht mehr die klassische Delphi Komponententechnik einsetzt. Meine Beschreibung diente auch eher der angefragten Problematik "Beispiel für Firebird". Wenn man ein gewisses Verständnis entwickelt hat, müsste einem klar sein, dass man kein Beispiel für "ein bestimmtes System" braucht.
Ich vermute aber, dass Harry Stahl erstmal diesen Weg gehen möchte. Zumindest hat er zu REST und Co nichts nachgefragt. Am Ende spielen bei solchen Architekturfragen auch immer Dinge wie ich sag mal "Kopierschutz" mit rein. Gestattet man architektonisch den direkten Zugriff auf die DB, wie setzt man das um, für Standalone Lösungen, für Cloud, für beides, ..
Kann ja alles noch hier aufgedröselt werden.

p80286 7. Mai 2016 10:56

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Zitat:

Zitat von jobo (Beitrag 1337690)
Zu dem leeren Formular:
Entweder, es sind keine Daten drin oder es fehlt eine Aktivierung/ Öffnen der Datenmenge oder es ist beim Öffnen ein Fehler aufgetreten, der irgendwie unterschlagen wird.

da die "ID" zurück gegeben wird, vermute ich das Namensproblem. Und nichts böses wie ein fehlgeschlagenes .Open.

Gruß
K-H

jobo 7. Mai 2016 12:27

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Ich hab mir den Code nicht angesehen. Ich würde als erstes in die DB selbst reinschauen. Z.b. mit einem SQLite Mozilla FF Plugin.
Dort kann man notfalls alles so anlegen, wie man es haben möchte, falls die Beispiel DB leer oder kaputt ist. Mit etwas debuggen, würde man ja auch sehen, woran es hapert.

PC-John 8. Mai 2016 16:25

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Ich hatte mich früher mal zu Thema Datenbank geäussert:

http://www.delphipraxis.net/182226-l...b-gesucht.html

Absolute-Database ist eine schöne kleine Sache, mit allem drin, drum und dran.
Braucht keinerlei Installation, nicht mal eine .DLL irgendwo muss mitgeliefert werden.

Es sind ein paar entsprechende Zugriffs-Komponenten einzupflanzen, welche praktisch identisch sind mit der bekannten BDE-Version.

Den Source-Code gegenüber der BDE musste ich kaum anpassen, lediglich das anziehen der richtigen Database ist etwas anders. Auch eine In-Memory-Database ist möglich, diese ist natürlich entsprechend schnell.

Und für nicht-kommerziellen Gebrauch ist die Absolute-Database sogar gratis.
Wer hingegen mal hinter die Kulissen schauen will, bekommt (nicht ganz gratis) auch die Entwickler-Version mit dem gesamten Code.

PC-John

Harry Stahl 8. Mai 2016 17:16

AW: Welche Datenbank und Zugriffskomponenten für kleine Datenbank-Anwendung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von p80286 (Beitrag 1337686)
Ich behaupte mal, daß die Feldnamen ('Name','Department') nicht stimmen. Mit 'NAME' könnte es z.B. funktionieren, oder aber sie sind überhapt nicht vorhanden.
Versuch mal etwas ähnliches wie:
Delphi-Quellcode:
  outputMemo.Text:= '';''
    // Die Feldnamen aus der Query hinzufügen.
    dummy:='';
    for i:=0 to query.fields.count-1 do
      dummy:=dummy+query.fields[i].Name+'|';
    outputMemo.Lines.Add(dummy);
    // Dem Memo eine Zeile pro Datensatz in der Tabelle hinzufügen.  
    while not query.Eof do
    begin
      outputMemo.Lines.Add(String.Format('|%8d|%-25|%-25s|',
        [query.FieldByName('ID').AsInteger, query.FieldByName('Name').AsString,
        query.FieldByName('Department').AsString]));
      query.Next;
    end;
Dann sollten in der Kopfzeile die von der Query zurückgegebenen Feldnamen auftauchen.

U.U. ist auch folgendes möglich
Delphi-Quellcode:
for i:=0 to query.fields.count-1 do
  dummy:=query.fields[i].asString;
outputMemo.Lines.add(dummy);
um die Feldinhalte ohne Namenskenntnis zurück zu geben.

Gruß
K-H

Mit der ersten Variante wird kein Inhalt zurückgeliefert.
Mit der zweiten Variante werden (wie von Dir vermutet) die Inhalte des Feldes ausgegeben.

Wenn man mit einem HEX-Editor in die Datebankdatei reinsieht, findet man "Name" und "Department".

Wie auch immer, nicht besonders überzeugend von EMBA, eine Demo anzubieten, die nicht im Ansatz funktioniert...:!:

Anliegend der Source, wie ich ihn von der EMBA-Homepage kopiert habe, incl. der Datenbankdatei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:50 Uhr.
Seite 1 von 2  1 2      

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