Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-) (https://www.delphipraxis.net/50025-datenbanken-mal-ganz-einfach-fuer-dumme-sozusagen-%3B.html)

Axos 19. Jul 2005 22:14

Datenbank: Firebird • Version: 1.5 • Zugriff über: ODBC

Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Halli Hallo

Ich habe mich schon ein bisschen schlau gemacht: hier im Forum, Firebird, ZEOS, MySQL usw. Aber wenn ich ehrlich bin klingt das ganze immer sehr kompliziert. (Zugegeben, so sehr viel Erfahrung habe ich nicht. Aber das will ich ja jetzt ändern.)

Gibt es denn keine einfache Möglichkeit sich mit einem Datenbank-Server zu kommunizieren? Etwa so wie ich das von PHP und MySQL kenne. Ganz "Ich möchte eine Verbindung, zu dem-und-dem Host, an dem-und-dem Port." und anschließend kann ich meine SQL-Statements verwenden.

Zum Test habe ich ja schon mal den Firebird installiert und dann habe ich versucht in der IDE mal eine Verbindung herstustellen aber irgendwie bekomme ich, wenn ich Connected:=True setzen will, einen Fehler "Ungültiger Parameter".

Kann mir jemand helfen? Also irgendwie mal Datenbanken für Dumme oder so? ;-)

Gruß
Axos

Taladan 19. Jul 2005 22:37

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Damit ich mir hier nicht die Finger wund schreib, einfach mal einen Link zur DelphiSource-DelphiTreff Seite (DSDT).

http://www.dsdt.info/tutorials/index.php?cat=6
Hier solltest du Antworten auf deine Fragen finden, die du hast...

Axos 19. Jul 2005 23:22

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
So ja... Danke dafür.

Ich hab mir das mal angesehen. Die ZEOS-Komponenten scheinen ja schon eine tolle Sache zu sein. Funktionieren mit MySQL, Firebird, ... Und dort kann man ja wenigstens Host, etc. angeben. Das vermisse ich bei den Delphi-Komponenten. Bei ihnen muss man immer 'nen Datenbank-Alias und so komische Sachen angeben.

Gibt es bei den Delphi-Komponenten auch irgendwie die Möglichkeit den Host, wo der Server läuft, anzugeben?

Und noch was am Rande: Meine Fehlermeldung "Ungültiger Prameter" kommt nicht, wenn ich ein DSN-Alias eingerichtet habe und es mit TDatabase benutze. Gebe statt dessen den Treiber an hab ich wieder meinen Fehler. Was mache ich falsch?

Gibt es noch anderweitige empfehlenswerte Codebeispiele, damit ich mir die Delphi- und ZEOS-Komponenten mal genauer ansehen kann?

Gruß Axos

marabu 20. Jul 2005 05:26

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Hallo Axos,

du darfst TDatabase und seine Freunde nicht mit Delphi gleichsetzen. Es gibt viele Zugriffstechniken für Datenbanken, jede hat ihre ganz besonderen Eigenheiten. Für die meisten findest du eine Sammlung (ZEOS, myODBC, FIBPlus, ...) von Delphi-Komponenten, die du zusätzlich zu BDE, ADO, IBX und DBX installieren kannst. Für andere bleibt dir die Gewissheit, dass du solche Komponenten selbst entwickeln kannst, Willen und Können vorausgesetzt.

Dass dich die BDE-Komponenten etwas befremden hat sicher damit zu tun, dass sie etwas in die Jahre gekommen sind. Als Microsoft ODBC entdeckte, da hatte Borland die Vision einer MiddleWare (IDAPI), die den Zugriff auf server- und file-basierte Datenbanken unter einen Hut bringen sollte. Ich glaube IDAPI als Kernstück der BDE ist bis heute die einzige Datenbankzugriffstechnik für Delphi, die heterogene Joins unterstützt.

Zu deinem Fehler mit der BDE-Komponente TDatabase - einen host name kannst du da nur indirekt über die System-Datenquellen angeben. Wenn du nicht auf Paradox "Datenbanken" zugreifen willst, sondern auf richtige SQL-Server, dann kannst du gut auf TDatabase verzichten. Für Interbase nehme ich IBDatabase, dort kannst du in der Eigenschaft DatabaseName den Namen des Servers einfach voran stellen.

Bei TDatabase kannst du nicht beliebige Treiber angeben, nur solche, die in IDAPI integriert sind.

Grüße vom marabu

...und herzlich willkommen in der Delphi-PRAXiS

Axos 27. Jul 2005 00:50

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Soo...

Ich habe mir das Ganze jetzt mal intesiv zu Gemüte geführt. Ergebnis: Ich vermisse die Client-Server-Architektur, von der immer alle sprechen :gruebel: (und die mir im übrigen auch ganz lieb wär).

Außer bei MySQL muss man immer ne DB-Datei angeben. Wie bitte realisiere ich dann die "Server-viele Clients-Architektur"? Ist das schonmal irgendwo gemacht worden, dass man sich das mal anschauen kann?

Und erhlich gesagt: Bei dem ganzen Wust, hab ich schon ein bisschen den Überblick verloren. :roteyes: Kann mir jemand Komponenten empfehlen, mit denen folgendes geht? (Ich brauch einfach noch mal nen Einstieg):

:?: Verbindung aufbauen zu einem Server (Host, Port, _keine_ Datei und keine Datenbank angeben)

:?: den Rest über Querys (SQL) erledigen (Schließlich kann man ja auch mit SQL die Datenbank auswählen/wechseln. Und auch hier wieder _keine_ Datei.)

:?: Der Datentransfer soll möglichst schlank gehalten sein. (Ich denke dabei an TTable & Co. die ja angeblich die ganze Tabelle und so laden bevor man auf den Daten arbeiten kann. Sowas brauch ja auch Speicher und Performance.)

Alles in Allem wie MySQL (das ich Verbindung mit PHP schon kenne). Zu MySQL gibt es wenigstens auch gute Administrationsprogramme (MySQL Administrator, MySQL Query Browser). Gibt es sowas auch für andere Datenbanken?

Gruß, Axos.

PS:
Ich bin doch nicht der erste der nach sowas fragt. Wie haben die anderen (ihr!) euch zum Thema schlau gemacht? Ich habe DelphiPraxis natürlich durchsucht. Ergebis der einzelnen Threads war irgendwie immer unbefridigend...

Neelix 27. Jul 2005 07:04

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Zitat:

Zitat von Axos
Zu MySQL gibt es wenigstens auch gute Administrationsprogramme (MySQL Administrator, MySQL Query Browser). Gibt es sowas auch für andere Datenbanken?

Für Firebird und Interbase gibt's IBExpert.
Zitat:

Zitat von Axos
Außer bei MySQL muss man immer ne DB-Datei angeben. Wie bitte realisiere ich dann die "Server-viele Clients-Architektur"?

Bei Verwendung der Interbase-Kompos, die mit Delphi geliefert werden, kann man unter der Eigenschaft DatabaseName auch Server-Namen mit angeben. Und der Datei-Name ist hier nichts anderes als der konkrete Datenbank-Name.
In der OH steht folgendes
Mit DatabaseName können Sie den Namen der Datenbank angeben, die einer Datenbankkomponente zugeordnet werden soll. Bei lokalen InterBase-Datenbanken kann DatabaseName ein Dateiname sein.

Um eine Verbindung zu einer InterBase-Datenbank auf einem Remote-Server mittels TCP/IP zu erstellen, verwenden Sie die Syntax <Servername>:<Dateiname>.

Um eine Verbindung zu einer InterBase-Datenbank auf einem Remote-Server mittels NetBEUI zu erstellen, verwenden Sie die Syntax \\<Servername>\<Dateiname>.

Um eine Verbindung zu einer InterBase-Datenbank auf einem Remote-Server mittels SPX zu erstellen, verwenden Sie die Syntax <Servername>@<Dateiname>.

r2c2 27. Jul 2005 09:26

Re: Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
 
Mit Datenbanken kenn ich mich zwar (noch) nicht so gut aus(hab nur ne PE), ich schreib aber gerade ne Bibliotheksverwaltung mit Delphi. Ich hab da MySQL benutzt. Zusammen mit den MySQLdirect-Klassen(OS; GPL)(n Tutorial dazu findest du ungter dem schon geposteten Link von Taladan) funktioniert das in etwa so, wie du dir das vorstellst:
- Connecten
- SQL schicken
- ggf. antwort auswerten
- Disconnecten

Die Darstellung musst du dann aber selbst in die Hand nehmen. Dantenbanksensitive Komponenten kommen da also nicht in Frage.

Was du jetzt machen willst, liegt bei dir.

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.

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