Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ist Paradox die richige DB? (https://www.delphipraxis.net/55795-ist-paradox-die-richige-db.html)

gmc616 27. Okt 2005 02:46

Datenbank: ? • Zugriff über: ?

Ist Paradox die richige DB?
 
Hallo DP'ler,

ich habe zwar schon einige Programme gegen die verschiedensten Datenbanken (Oracle, Centura/Gupta, MSSQL,MySQL u.a.) geschrieben, aber nun suche etwas "einfaches" für ein privates Projekt.

Immer wieder stoße ich hier im Form über Paradox, aber ist das das richtige?

Ich möchte eine DB die:
- kostenlos ist (ist ein privates Projekt und so dicke hab ichs auch wieder nicht)
- sich bei der Installation meines Programms mit installiert, wenn nötig (womit MySQL weg fällt)
- Outer-Joins, Unions und SubQuerys versteht
- sich vernüftig administieren lässt
- Stored Procedure, Trigger und
- Views(!) unterschützt

Der Zugriff soll zunächst auf den localen Rechner erfolgen, später aber, ohne großen Aufwand, evtl. auch netzwerkfähig sein, und ganz später auch von Linux-Anwendungen erreichbar sein.

Kann das Paradox?

In einigen Tuts habe ich was von dbExpress,FoxPro und BDE(?) gelesen. Was haltet ihr davon?

Was könnt ihr mir empfehlen?

Sicher wurde so eine Frage hier im Forum schon einige male gestellt, aber aus den Hinweisen in der Suche nach "Welche Datenbank" zu suchen und den 'zig Treffern bin ich nicht fündig geworden, allzumal das Thema Views in den von mir gelesenen Threads nie erwähnt wurde.
Also nehmt mir meine Frage bitte nicht übel.

Danke und Grüße
gmc

mikhal 27. Okt 2005 07:01

Re: Ist Paradox die richige DB?
 
Nimm besser eine andere, modernere Datenbank. Etwa Firebird, da existiert eine EMBEDDED-Lösung bei der du keinen Server installieren mußt, sondern lediglich einige DLL 's zu deinem Programm hizupacken mußt. Als Zugriffskomponente bietet sich da unter anderem ZEOS an.

Schau mal hier in den Tutorien nach.

Grüße
Mikhal

alzaimar 27. Okt 2005 07:05

Re: Ist Paradox die richige DB?
 
Firebird ist schonmal sehr gut.
Weitere Möglichkeiten
SQLite - Benötigt gar keine Installation, ist winzig klein kann, glaube ich, Alles was Du willst...
MSDE - HighEnd-Server, einfache Installation, Admintools von Drittanbietern (gibts auch als Freeware)

Wenns auch ohne StoredProcedures geht, dann Access. Als Desktop-DB wirklich zu empfehlen.

marabu 27. Okt 2005 07:08

Re: Ist Paradox die richige DB?
 
Hallo gmc.

Nur damit klar ist über was wir hier diskutieren: Paradox aus der Sicht eines Delphi-Programmierers ist ein externes Datenformat und keine Datenbank. Die Programmierschnittstelle heißt Borland Database Engine (BDE) und war damals der Versuch Open Database Connectivity (ODBC) durch Integrated Database Application Programming Interface (IDAPI) zu toppen. Die BDE spielt heute kaum noch eine Rolle und wird von Borland auch schon seit Jahren nicht mehr gewartet, gescheige denn weiterentwickelt.

Die BDE in Verbindung mit dem Paradox Datenformat ist netzwerk- und multiuser-fähig, allerdings auf der Basis von record und file locking. Im Gegensatz zu den großen SQL-Servern, bei denen die Zugriffsroutinen über ein Netzwerkprotokoll aktiviert werden, liegen die Paradox-Zugriffsroutinen im Adressraum der Anwendung. Es gibt keine zentrale Instanz zur Verwaltung der Zugriffe. Es gibt auch nur einen schmächtigen SQL-Dialekt namens LOCALSQL, der vieles vermissen lässt, was der gewiefte SQL-Experte erwartet. Die Liste der nicht implementierten ANSI-SQL Befehle beläuft sich auf knapp 70 Befehle.

Nein zu Paradox - das ist meine Antwort für dich. Ich bin kein notorischer Gegner dieses Datenformats und habe es in den vergangenen Jahren oft genug in erfolgreichen Projekten eingesetzt, aber wenn deine Anforderungen eine Bedeutung haben, dann schau dich nach etwas anderem um - Stored Procedure, Views, Trigger und Subqueries sind mit Paradox definitiv nicht zu machen.

Grüße vom marabu

mschaefer 27. Okt 2005 07:43

Re: Ist Paradox die richige DB?
 
Moin, moin,

Marabu hat das schon auf den Punkt gebracht. Denke, das Firebird-Embedded für Dich die richtige DB ist. Es kann alle geforderten Kriterien, hat mit Firebird-Standart einen großen Bruder, wenn Dein Projekt zufällig wachsen sollte und wenn Du noch die Erweiterungen des Fyracle-Projects einbeziehst, kannst Du auch noch einen Teil Deiner Oracle-Kentnisse einbeziehen.

Grüße // Martin

BeBored 27. Okt 2005 08:37

Re: Ist Paradox die richige DB?
 
Es gibt eine "Free Embedded Version" von NexusDB auf der NexusDB Webseite. Die sollte alles das kann was du benötigst und ist dazu ziemlich leistungsfähig und der Support ist fix (IRC Server etc.). Ein Blick allemal wert.

Pfoto 27. Okt 2005 21:28

Re: Ist Paradox die richige DB?
 
Ebenfalls gut und kostenlos als "embedded Version" ist der ADS (Advantage Database Server), zu finden hier: http://www.advantagedatabase.com

Gruß
Pfoto

gmc616 28. Okt 2005 00:03

Re: Ist Paradox die richige DB?
 
Erst mal Danke für die teilweise sehr ausführlichen Antworten. Wieder viel gelernt.

Ich probiere z.Z. eure Vorschläge aus.

Firebird war meine erste Wahl. Sah alles bestens aus, allerdings lässt die Embedded-Version keinen Zugriff auf einer "auf-einem-netzlaufwerk-liegenden" Datenbank zu.

Dumme Sache das, da alle meine Projekte auf meinem Server liegen.
Da ich mich immer mit meiner Frau um die Rechner "streite" und sich das in Zukunft auch nicht ändern wird, empfinde ich das als die beste Lösung.

Mit ADS hatte ich auch schon zu tun. ADS verbinde ich mit dBase bzw. Clipper, also auch dateibasierendes Datenformat, ähnlich Paradox (wie ich gelernt habe ;-) ). Oder oder irre ich da?
Für Clipper-DBF's die eine CDX-Index-Datei führen ist ADS def. die beste Wahl.

Die Embedded NexusDB schau ich mir grad an. Enttäuschend das im Delphi Guide des Manuals nur ein "todo" zu lesen ist.

Von Access will ich ja wegkommen, da ich in Zukunft auf MS-Office komplett verzichten will.
Auch hab ich es nie geschafft über ADO, damals allerdings VB6, eine binäre Datei in Access zu speichern.

SQLite und MSDE kenne ich noch nicht. Falls ihr wisst, dass ich mit diesen auch nicht auf Netzlaufwerken arbeiten, könnt ihr mir doch gleich einen Wink geben, oder?

Falls alle Stricke reisen, werd ich wohl in den sauren Apfel beisen (oder besser meine Frau) und auf Firebird zurückgreifen. Der Zugriff wird dann über ZEOS erfolgen, allzumal ich ZEOS bereits für MySQL installiert habe.

Trotzdem nochmal Vielen Dank für die Ratschläge.

gmc

Thanatos81 28. Okt 2005 01:06

Re: Ist Paradox die richige DB?
 
Hmmm... Ich nutze jetzt zur Zeit selber gerne den Firebird in der Embedded-Variante für priovate Projekte. Würde ich normalerweise auch empfehlen, aber falls du auf "den Biss in den suaren Apfel" verzichten möchtest und übers Netzwerk zugreifen möchtest, schau dir doch mal MySQl embedded an. Habe ich persönlich noch nicht benutzt, da ich mit Firebird sehr zufrieden bin, ist aber eventuell für dich nen Blick wert.

Hansa 28. Okt 2005 02:39

Re: Ist Paradox die richige DB?
 
Zitat:

Zitat von gmc616
...Firebird war meine erste Wahl. Sah alles bestens aus, allerdings lässt die Embedded-Version keinen Zugriff auf einer "auf-einem-netzlaufwerk-liegenden" Datenbank zu.
...

Das da verstehe wer will, ich tus aber nicht. :mrgreen: Der Unterschied embedded / normal ist wohl nicht ganz klar, oder ?

Thanatos81 28. Okt 2005 04:24

Re: Ist Paradox die richige DB?
 
Naja, ich denke schon. Aber bei Paradox via BDE kann man ja auch im Exklusiv-Modus über Netzlaufwerke zugreifen und das geht beim embedded Firebird eben nicht.

alzaimar 28. Okt 2005 06:44

Re: Ist Paradox die richige DB?
 
Eins Vorneweg: Dank an den marabu, der zu Recht Paradox und BDE in die Asservatenkammer schickt.

Zitat:

Zitat von gmc616
SQLite und MSDE kenne ich noch nicht. Falls ihr wisst, dass ich mit diesen auch nicht auf Netzlaufwerken arbeiten, könnt ihr mir doch gleich einen Wink geben, oder?

MSDE = Microsoft Database Engine, der SQL Server 2000, ohne Replikationsunterstützung und Frontend.
SQLite = Mini-DB ohne Installationsaufwand aber, soweit ich inzwischen weiss, nicht threadfähig.

Die MSDE bringt nur dann etwas, wenn Du die nötigen Tools besorgen kannst
  • Ein Admin-Tool, zum Einrichten und Warten der DB,
    einen Profiler zum Beobachten der zum Server geschickten SQL-Befehle sowie
    ein SQL-Kommandozeilentool, um zum testen mal eben SQL-Befehle abzusetzen.
[senf]
Die MSDE, also die Freewarevariante des SQL-Servers (eines der schnellsten DB), kommt gänzlich ohne diese Programme. Es gibt einige Freewaretools, aber IMHO bist Du dann auch mit FB gut bedient, zumal FireBird in der Installation ziemlich klein ist. Das Installationspaket enthält zwar keines der o.g. Tools, aber die gibt es zuhauf im Internet für Lau, weil FB eben Open Source ist.
[/senf]

joachimd 28. Okt 2005 12:16

Re: Ist Paradox die richige DB?
 
Zitat:

Zitat von gmc616
Mit ADS hatte ich auch schon zu tun. ADS verbinde ich mit dBase bzw. Clipper, also auch dateibasierendes Datenformat, ähnlich Paradox (wie ich gelernt habe ;-) ). Oder oder irre ich da?
Für Clipper-DBF's die eine CDX-Index-Datei führen ist ADS def. die beste Wahl.

Welche Datenbank basiert nicht auf Dateien für die Speicherung? Irgendow muss das ganze Zeuch doch hingeschmissen werden.
ADS basiert auf flatfiles, d.h. jede Tabelle hat ihre eigene Datei. Das mag Nachteile haben, hat aber auch unheimlich Vortiele. Wenn du die komplette DB in eine einzige Datei speicherst, ist bei einem Hardwarefehler (Dateisystem, ein Bit umgefallen) die komplette DB kaputt. Bei Flatfile nur eine einzige Tabelle, vielleicht nicht einmal die, wenn es den Index erwischt hat. Auch hast du eventuell ein Filesystem mit Größenbeschränkung (FAT32 bei 4GB)...das begrenzt entweder nur eine Tabelle oder die ganze Datenbank (je nach Format). Rücksichern einzelner Tabellen? Nur eine Datei ersetzen gegenüber backup/restore.
Neben DBF gibts beim ADS auch das erheblich erweiterte ADT-format (nein, man muss dazu nicht wie unter mySQL eine andere Engine anspringen...die Verwendung geht sogar parallel in einer Anwendung/einem SQL statement). Über die ADT noch ein Data dictionary gepflanzt und Du hast alles, was Du oben gewünscht hast...sogar kostenlos (mit dem Local Server).
Trigger, Stored Procedures (hey - beides sogar auch in Delphi geschrieben), Default Werte, RI, Benutzerverwaltung, ...
Also bitte nicht abstempeln, weil Du vor 10 Jahren mal was davon gehört hast ;)

jensw_2000 28. Okt 2005 16:26

Re: Ist Paradox die richige DB?
 
Zitat:

Zitat von alzaimar
Eins Vorneweg: Dank an den marabu, der zu Recht Paradox und BDE in die Asservatenkammer schickt.

Zitat:

Zitat von gmc616
SQLite und MSDE kenne ich noch nicht. Falls ihr wisst, dass ich mit diesen auch nicht auf Netzlaufwerken arbeiten, könnt ihr mir doch gleich einen Wink geben, oder?

MSDE = Microsoft Database Engine, der SQL Server 2000, ohne Replikationsunterstützung und Frontend.
SQLite = Mini-DB ohne Installationsaufwand aber, soweit ich inzwischen weiss, nicht threadfähig.

Die MSDE bringt nur dann etwas, wenn Du die nötigen Tools besorgen kannst
  • Ein Admin-Tool, zum Einrichten und Warten der DB,
    einen Profiler zum Beobachten der zum Server geschickten SQL-Befehle sowie
    ein SQL-Kommandozeilentool, um zum testen mal eben SQL-Befehle abzusetzen.
[senf]
Die MSDE, also die Freewarevariante des SQL-Servers (eines der schnellsten DB), kommt gänzlich ohne diese Programme. Es gibt einige Freewaretools, aber IMHO bist Du dann auch mit FB gut bedient, zumal FireBird in der Installation ziemlich klein ist. Das Installationspaket enthält zwar keines der o.g. Tools, aber die gibt es zuhauf im Internet für Lau, weil FB eben Open Source ist.
[/senf]

Zwei kleine Korrektoren:

Die MSDE unterstützt Replikation (sogar Merge-Replikation).
Ein Kommandozeilentool ist auch immer dabei (OSQL).
Mit OSQL kann man die komplette DB (mit mühevoller Tipparbeit) administrieren.

Gute Freewaretools für MSSQL/MSDE gibt es wie Sand am Meer.
Mein klarer Freeware Favorit ist der EMS MSSQL-Manager Lite.

Wer abschätzen kann das seine DB nicht größer als 2 GB wird und auf T-SQL Vollausstattung nicht verzichten möchte sollte imho zur MSDE greifen.





Schöne Grüße,
Jens
:hi:

alzaimar 28. Okt 2005 16:36

Re: Ist Paradox die richige DB?
 
Danke für die Korrektur. Aber was war denn das, war die MSDE nicht kann? Irgend so ein Feature war doch abgeschaltet? Ich kann jedenfalls meine MSDE nicht replizieren, da meckert der Enterprise Manager.

jensw_2000 28. Okt 2005 19:42

Re: Ist Paradox die richige DB?
 
Zitat:

Zitat von alzaimar
Danke für die Korrektur. Aber was war denn das, war die MSDE nicht kann? Irgend so ein Feature war doch abgeschaltet? Ich kann jedenfalls meine MSDE nicht replizieren, da meckert der Enterprise Manager.

Gute Frage...
bei mir ist die MSSQL7-Developer-Ed. Publisher und die MSDE Subscriber einer Merge Replikation.
Ich glaube bei Push-Pull Replikationen gab es Restriktionen, aber bevor ich was falsches sage, blätter ich später lieber eine Weile im MSDN ...
Bis nachher ...

:hi:

jensw_2000 28. Okt 2005 20:43

Re: Ist Paradox die richige DB?
 
Hier [ MSDN Merge Replikation mit MSDE ] gibt es im wesentlichen 2 Einschränkungen:
1.
Der Publisher und der Distributor müssen auf der selben Maschine laufen. (Remote Distibitoren werden also nicht unterstützt)
2.
Die MSDE kann nur Publisher von Snapshot Replikationen bzw. Merge Replikationen sein. (Als Publisher von transaktionellen Publikationen muss also ein kostenpflichtiges Produkt hinhalten.) Als Subscriber kann die MSDE bei allen drei Replikationstypen dienen.


Der Rest sind halt die ganz normalen MSDE Einschränkungen (2GB Limit, 5 Workerthreads (also für die Abarbeitung von 5 parallel laufenden Prozessen (Abfragen o.Ä) optimiert, keine GUI Verwaltungs- und Optimiertungstools). (Infos hier)

Wenn man mit den 5 Workerthreads auskommt (was imho bei wenig bis normal datenbanklastigen Anwendungen und gut programmiertem SQL Code, bis zu 20 Usern der Fall sein dürfte), dann hat man einen wirklich hochwertigen SQL Server mit einem mächtigen T-SQL Dialekt. Zudem gibt es keine Einschränkung, wenn man die MSDE kommerziell nutzen möchte.



Schöne Grüße,
Jens
:hi:

alzaimar 28. Okt 2005 20:49

Re: Ist Paradox die richige DB?
 
Cool, danke. Genau das war es.

Sir Rufo 30. Okt 2005 00:25

Re: Ist Paradox die richige DB?
 
Zitat:

Zitat von gmc616
Firebird war meine erste Wahl. Sah alles bestens aus, allerdings lässt die Embedded-Version keinen Zugriff auf einer "auf-einem-netzlaufwerk-liegenden" Datenbank zu.
(...)
SQLite und MSDE kenne ich noch nicht. Falls ihr wisst, dass ich mit diesen auch nicht auf Netzlaufwerken arbeiten, könnt ihr mir doch gleich einen Wink geben, oder?

ähhh, also wie denn, hmmm ... :gruebel:

nun ein Datenbanksystem mit einem Serverprogramm (dat sind die embedded Dinger nun mal auch), die finden das total uncool wenn die DB-Dateien auf einem Netzwerk liegen (also DB-Server läuft auf PC A und die DB-Files liegen auf PC B). Denn wenn die Netzwerkverbindung ein wenig hakt, dann haben die sofort Stress und machen :wall:
oder PC B hängt sich mal weg und startet eben mal neu, oder, oder, oder ...

Aber wie sagte man schon, es handelt sich hier ja um DB-Server (Software) ... aha ... und Du hast einen Server (Hardware), dann installier doch den DB-Server (Software) auf den Server (Hardware) und dann greifst Du auf den Server einfach zu (per TCP/IP).

Was besseres kannst Du doch dann gar nicht haben. Oder wir haben jetzt alle mal wieder vorbeikommuniziert?

cu

gmc616 24. Nov 2005 09:40

Re: Ist Paradox die richige DB?
 
Nach dem ich wieder mal Zeit gefunden habe mich meinen privaten Projekten zu widmen, ist die Wahl getroffen.

Der ADS-LocalServer wirds werden.

Danke euch für die zahlenreichen Tipps und Hinweise.

@Sir Rufo und der Rest, den's interessiert:

Mein Server ist ein Hardware-Server, allerdings unter Linux.
Somit wäre daher die Auswahl der DB-Server(Software) schon eingeschränkt(er).
Deshalb wollte ich eine Engine, die lokal unter Win32 läuft (ohne großen Installieraufwand) und die DB's von einem Netzlaufwerk verwendet, da all meine Projekte eben dort liegen und ich evtl. mit meinem zweiten PC ebenfalls darauf zugreifen kann und möchte.

Mein Server(Hardware) musste in den letzen 2 Jahren einmal neu gestarten werden (toi toi toi ;) ), also sehe ich keine größeren Probleme bei der Verfügbarkeit.
Mein Projekt ist ausschließlich für private Zwercke gedacht.
Evtl. bekommen meine Kumpel/-ienen (und alle die es wollen) eine Kopie davon.
In aller Regel haben meine Kumpels kein Netzwerk, so dass die DB's dort eh lokal liegen würden.

... und mit dem ADS-LocalServer ist das alles realisierbar.

bis die Tage
gmc


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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