AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbanken mal ganz einfach? Für Dumme sozusagen... ;-)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Axos · begonnen am 19. Jul 2005 · letzter Beitrag vom 27. Jul 2005
Antwort Antwort
Axos

Registriert seit: 19. Jul 2005
6 Beiträge
 
#1

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

  Alt 19. Jul 2005, 23:14
Datenbank: Firebird • Version: 1.5 • Zugriff über: ODBC
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
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#2

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

  Alt 19. Jul 2005, 23:37
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...
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Axos

Registriert seit: 19. Jul 2005
6 Beiträge
 
#3

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

  Alt 20. Jul 2005, 00:22
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

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

  Alt 20. Jul 2005, 06:26
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
  Mit Zitat antworten Zitat
Axos

Registriert seit: 19. Jul 2005
6 Beiträge
 
#5

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

  Alt 27. Jul 2005, 01:50
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 (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. 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...
  Mit Zitat antworten Zitat
Neelix

Registriert seit: 30. Nov 2004
Ort: Im Delta-Quadranten
84 Beiträge
 
#6

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

  Alt 27. Jul 2005, 08:04
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 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>.
Gruß von der USS Voyager

Neelix
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#7

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

  Alt 27. Jul 2005, 10:26
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
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 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