Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird embedded - mehrere Datenbanken (https://www.delphipraxis.net/41962-firebird-embedded-mehrere-datenbanken.html)

RavenIV 11. Mär 2005 11:25

Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Zeos

Firebird embedded - mehrere Datenbanken
 
hallo

mich würde interessieren, ob man mit dem Firebird embedded gleichzeitig auf mehrere Datenbanken zugreifen kann.

Hintergrund:
wir haben eine Anwendung, die Daten aus mehreren Datenbanken holen muss, natürlich sollen immer alle fünf Datenbanken gleichzeitig geöffnet sein.

ist das mit dem FB embedded möglich, oder muss man dazu den FB-Server benutzen?

gruessle

Robert_G 11. Mär 2005 11:32

Re: Firebird embedded - mehrere Datenbanken
 
Innerhalb der DB?
Geht nicht. Siehe hier: Firebird: Tabelle einer anderen Firebird db abfragen

BTW: Die ZEOS würde ich an deiner Stelle nicht benutzen. Warum solltest du anhand der zig Bugs selbst wissen. ;)

RavenIV 11. Mär 2005 11:36

Re: Firebird embedded - mehrere Datenbanken
 
ich möchte nicht cross-database-Abfragen machen.
ich möchte verschiedene Datenbanken gleichzeitig geöffnet haben.
Und dann selects in verschiedenen Tabellen dieser Datenbanken machen.

gruessle

mschaefer 11. Mär 2005 11:59

Re: Firebird embedded - mehrere Datenbanken
 
Moin, moin,

also habe ein Projekt seit Jahren im Netz mit Zeos laufen und sehe da kein nennenswetes Problem. Das die etwas mehr Einarbeitungszeit als bei kommerziellen Produkten haben leigt auf der Hand, aber das kleine Entwicklerteam hat meinen Respekt. Im Übrigen halte ich Kommentare im Tenor "was man nicht nehmen" sollte ohne die Alternative aufzuzeigen für schlicht überflüssig.

Zum Thema: Gleichzeitig mehrere Datenbanken geöffnet haben, dass geht über mehrere TDatabase-Komponenten wobei jede einzeln mit den Transaktionen und Queries vertratet werden muß.

Haken, un hier wird Oracle Profi Robert wahrscheinlich wieder gnadenlos zuschlagen: :wink:
Es gehen damit keine SQL-Statements über die Datenbanken hinweg. Zumindest ist mir da kein Weg bekannt. An dem Punkt muß man vielleicht nicht gleich zu Oracle greifen (schaden tut´s wohl nichts), aber ein Blick auf PostGre lohnt sich dann schon.

Grüße in die Runde // Martin

RavenIV 11. Mär 2005 12:07

Re: Firebird embedded - mehrere Datenbanken
 
Zitat:

Zitat von mschaefer
Moin, moin,

also habe ein Projekt seit Jahren im Netz mit Zeos laufen und sehe da kein nennenswetes Problem. Das die etwas mehr Einarbeitungszeit als bei kommerziellen Produkten haben leigt auf der Hand, aber das kleine Entwicklerteam hat meinen Respekt.

ich hab auch schon etliche sachen mit Zeos gemacht.
Mein Vorteil ist halt, dass ich nicht BDE-verdorben bin, das BDE kenn ich nicht.

Zitat:

Zum Thema: Gleichzeitig mehrere Datenbanken geöffnet haben, dass geht über mehrere TDatabase-Komponenten wobei jede einzeln mit den Transaktionen und Queries vertratet werden muß.
ist mir schon klar, dass das nicht über EINE Zquery gelöst werden kann.
werde wohl mehrere ZConnection aufbauen und jeweil die diversen Zqeury anhängen.

Zitat:

Haken, un hier wird Oracle Profi Robert wahrscheinlich wieder gnadenlos zuschlagen: :wink:
Es gehen damit keine SQL-Statements über die Datenbanken hinweg. Zumindest ist mir da kein Weg bekannt. An dem Punkt muß man vielleicht nicht gleich zu Oracle greifen (schaden tut´s wohl nichts), aber ein Blick auf PostGre lohnt sich dann schon.
das brauch ich nicht.
ich will mit EINER ZQuery immer nur auf EINE Datenbank zugreifen.

gruessle

mschaefer 11. Mär 2005 12:25

Re: Firebird embedded - mehrere Datenbanken
 
Zitat:

ich hab auch schon etliche sachen mit Zeos gemacht.
Mein Vorteil ist halt, dass ich nicht BDE-verdorben bin, das BDE kenn ich nicht.
Das ist auch kein Verlust, da habe ich schon etliche Projekte traurig zugrundegehen sehen, als sie gewachsen sind. Das ist endgültig vorbei und Roberts Kommentar dürfte da wohl eher vernichtent sein was ich dann nur unterstützen kann...

Grüße // Martin

Hansa 11. Mär 2005 12:43

Re: Firebird embedded - mehrere Datenbanken
 
Jetzt fängt endlich mal nicht Robert mit Oracle an, dafür aber die anderen. :lol: Was nicht geht : innerhalbe eines Programmes gleichzeitig auf verschiedene GDB/FDB Files also Datenbanken zuzugreifen. Welche Datenbank nun tatsächlich gebraucht wird, das muß man eben im Programm einstellen. Man kann auch mehrere Datenbanken in einem Programm ansprechen. Nur eben nicht gleichzeitig. Damit es läuft, muß die GDS32/FBCLIENT.DLL eben aufzufinden sein. Bei mehreren Datenbanken bietet es sich an, diese ins Windows/System Verzeichnis zu kopieren. Hierbei gilt wieder folgende Warnung : äußerste Vorsicht, sofern der geringste Verdacht besteht, daß bereits eine Firebird / Interbase Installation existiert :!:

Und grundsätzlich zu "mehrere Datenbanken" : wer so etwas in seinem Programm braucht, der soll besser bei dateibasierenden Datenbanken, wie bspw. dBase bleiben. Wenn Oracle das kann : wer braucht denn so was überhaupt ? :mrgreen:

Und nun zu den Zugriffskomponenten : Zeos soll tatsächlich buggy sein. Kann ich aber nicht beurteilen. Ich kann nur sagen : sie sind etwas seltsam. 8) Wegen Firebird verwende ich die IBX lieber von Anfang an nicht. Ab Firebird 1.5 halte ich es schon für leichtsinnig die zu benutzen. Dann gibt es noch ein paar unbekanntere Sachen. Übrig bleibt einzig und alleine FIBplus.

nieurig 11. Mär 2005 13:08

Re: Firebird embedded - mehrere Datenbanken
 
Kleiner Hinweis !
M$SQL-Server kann Abfragen über mehrere DB ausführen.
Außerdem kann man Verbindungsserver einrichten, um auf fremde Datenbanken zuzugreifen.
Es muss also nicht immer Oracle sein :-)

Zitat:

Und grundsätzlich zu "mehrere Datenbanken" : wer so etwas in seinem Programm braucht, der soll besser bei dateibasierenden Datenbanken, wie bspw. dBase bleiben. Wenn Oracle das kann : wer braucht denn so was überhaupt ? Mr. Green
Das ist dann doch wohl eher keine wahre Alternative. Wer das wirklich braucht hat vermutlich auch weiterreichende Ansprüche an die Datenbank.

Gut gebrauchen kann man dies Feature wenn man auf Datenbanken zugreifen will, die man nicht unbedingt selbst erstellt hat, die aber unter einem Server laufen.

Niels

Hansa 11. Mär 2005 13:25

Re: Firebird embedded - mehrere Datenbanken
 
Zitat:

Zitat von nieurig
...Das ist dann doch wohl eher keine wahre Alternative. Wer das wirklich braucht hat vermutlich auch weiterreichende Ansprüche an die Datenbank...

Klar gibt es wohl Ausnahmefälle, wo so etwas nötig ist. Aber in 99,9 % der Fälle eher nicht. Aus diesem Grund gibt es eben auch verschiedene Datenbanken. Die Frage nach "mehreren Datenbanken" ist allerdings schon häufiger aufgetaucht. Und meistens kam dabei raus, daß der Fragesteller den Unterschied zwischen Tabelle und Datenbank nicht wußte, oder ein katastrophales DB-Design hatte. :mrgreen:

RavenIV 11. Mär 2005 14:06

Re: Firebird embedded - mehrere Datenbanken
 
Zitat:

Zitat von Hansa
Klar gibt es wohl Ausnahmefälle, wo so etwas nötig ist. Aber in 99,9 % der Fälle eher nicht. Aus diesem Grund gibt es eben auch verschiedene Datenbanken. Die Frage nach "mehreren Datenbanken" ist allerdings schon häufiger aufgetaucht. Und meistens kam dabei raus, daß der Fragesteller den Unterschied zwischen Tabelle und Datenbank nicht wußte, oder ein katastrophales DB-Design hatte. :mrgreen:

natürlich kenne ich den unterschied zwischen table und database.
es ist eben eine historisch gewachsene datenbank-menge.
und bevor wir jetzt das komplette design auseinander pflücken, wäre es im ersten schritt schön, wenn man eben mehrere datenbanken gleichzeitig connecten könnte.

gruessle

mschaefer 11. Mär 2005 15:19

Re: Firebird embedded - mehrere Datenbanken
 
Moin, Grübel,

also kenne das Problem aber einen elendigen Haken hat das: Man steckt Programmierzeit in eine Lösung die von vorhneherein nicht glücklich ist.

Veilleicht könnte man mit DbCompare eine eine gemeinsame Datenbank erstellen in die alle anderen Daten importiert werden. Das ist wirklich ein Manko von Firebird.

Grüße // Martin

RavenIV 11. Mär 2005 15:38

Re: Firebird embedded - mehrere Datenbanken
 
resumee:
mit dem firebird-embedded-server kann man immer nur eine datenbank gleichzeitig ansprechen.

somit müssen wir entweder das DB-design überarbeiten oder eben den firebird-full-server einsetzen.

gruessle

mschaefer 11. Mär 2005 16:06

Re: Firebird embedded - mehrere Datenbanken
 
Hm, Ja ist leider schlimmer,

die Restritktion betrifft auch den FullServer. Um mal wieder auf Robert zu kommen, der wollte vor einiger Zeit mal die diesen Januar erstmals erschienene reine Windows-Verison von PostGre-Testen. Das wäre noch so ein Gedanke, den man hier auch verfolgen könnte zumal ZEOS damit er mehr erprobt ist.
PostGre hat einen wesentlich besseren Befehlssatz als Firbeird. Haken das geht nur auf NTFS-Laufwerken und ich bin leider noch nicht selbst zum Testen gekommen. Aber es ist halt auch eine freies DBMS und wird weiterentwickelt.

Grüße // Martin

Lemmy 11. Mär 2005 17:00

Re: Firebird embedded - mehrere Datenbanken
 
Hallo???

wie kommt Ihr auf den Gedanken ein Firebird 1.5 Server kann nur EINE Datenbankdatei zur selben Zeit verwalten (sprich öffnen und darauf zugreifen)??? Habt Ihr irgend was persönlich gegen dieses DBMS???? :evil:

Mal Klartext: Es ist kein Problem mit dem Firbird Embedded mehrere Datenbankdateien GLEICHZEITIG zu öffnen und zu bearbeiten. Die einzige Einschränkung: Es kann nur ein Client pro Datenbank "verwaltet" werden da FB Embedded die Datenbankdatei exklusiv öffnet. Wer das nicht glaubt:

Ordner anlegen und FB embedded mit 2 bel. Datenbankdateien reinkopieren, zusätzlich ein Konsolenprogramm wie IBOConsole, IBExpert.... einen lokalen Server registrieren, beide Datenbanken registrieren udn fertig!

Was nicht geht ist von einer Datenbank direkt auf die andere zuzugreifen. Allerdings unterstützen bei Delphi die meisten Komponenten (zumindest von IBX weiß ich es gewiss) eine datenbankübergreifende Transaktionssteuerung, d.h. innerhalb einer Transaktion kann ich in verschiedenen Datenbanken arbeiten!

Lemmy

RavenIV 11. Mär 2005 17:04

Re: Firebird embedded - mehrere Datenbanken
 
Zitat:

Zitat von mschaefer
Hm, Ja ist leider schlimmer,

die Restritktion betrifft auch den FullServer. Um mal wieder auf Robert zu kommen, der wollte vor einiger Zeit mal die diesen Januar erstmals erschienene reine Windows-Verison von PostGre-Testen. Das wäre noch so ein Gedanke, den man hier auch verfolgen könnte zumal ZEOS damit er mehr erprobt ist.
PostGre hat einen wesentlich besseren Befehlssatz als Firbeird. Haken das geht nur auf NTFS-Laufwerken und ich bin leider noch nicht selbst zum Testen gekommen. Aber es ist halt auch eine freies DBMS und wird weiterentwickelt.

Grüße // Martin

das stimmt aber nicht.
ich habe eben getestet.
konnte mit zwei ZConnection auf verschiedene Datenbanken connecten.
und mit zwei ZQuery Daten abrufen.

es kann also nicht sein, dass man immer nur eine Datenbank ansprechen kann mit dem Full-Server.

gruessle

mschaefer 11. Mär 2005 17:41

Re: Firebird embedded - mehrere Datenbanken
 
Moin, moin,

ja, dass macht Sinn!
So long
// Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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 by Thomas Breitkreuz