Freigeben über


Verweisen auf mehrere Datenbanken

Auf dem System können sich viele Visual FoxPro-Datenbanken befinden, um die Organisationsbedürfnisse in einer Mehrbenutzerumgebung zu befriedigen. Mehrere Datenbanken bieten folgende Vorteile:

  • Steuern des Benutzerzugriffs auf bestimmte Tabellen im gesamten System
  • Organisation der Daten, um den Informationsbedarf der verschiedenen Gruppen, die das System verwenden, effizient zu befriedigen
  • Zulassen der exklusiven Verwendung einer Teilmenge von Tabellen zum Erstellen von lokalen Sichten und Remotesichten zur Laufzeit.

Angenommen, Sie haben eine Datenbank Verkäufe, in der die Vertriebsinformationen gespeichert sind. Sie wird vorwiegend von der Vertriebsabteilung, die mit den Kunden zusammenarbeitet, verwendet. Eine zweite Datenbank enthält die Bestandsinformationen. Diese Datenbank wird vorwiegend von den Einkäufern, die mit den Lieferanten zusammenarbeiten, verwendet. Dabei kommt es von Zeit zu Zeit vor, dass beide Benutzergruppen dieselben Informationsbedürfnisse haben. Diese Datenbanken können beide gleichzeitig geöffnet werden. Ferner ist bei Bedarf ein gemeinsamer Zugriff auf beide Datenbanken möglich, und dennoch enthalten beide Datenbanken unterschiedliche Arten von Informationen.

Mehrere Datenbanken erhöhen die Flexibilität des Systems

Es gibt zwei Wege, wie Sie mehrere Datenbanken verwenden können: Sie können mehrere Datenbanken gleichzeitig öffnen oder auf Tabellen in einer geschlossenen Datenbank verweisen. Sind mehrere Datenbanken geöffnet, können Sie die aktive Datenbank festlegen und Tabellen daraus auswählen.

Öffnen mehrerer Datenbanken

Ist eine Datenbank geöffnet, werden die Tabellen und die Beziehungen zwischen diesen Tabellen durch die in der Datenbank gespeicherten Informationen gesteuert. Sie können mehrere Datenbanken gleichzeitig geöffnet haben. Dies könnte z. B. der Fall sein, wenn Sie mehrere Anwendungen ausführen, wobei jede Anwendung auf eine andere Datenbank zugreifen muss. Möglicherweise möchten Sie mehrere Datenbanken öffnen, um Informationen wie benutzerdefinierte Steuerelemente zu verwenden, die in einer von der Anwendungsdatenbank getrennten Datenbank gespeichert sind.

So öffnen Sie mehrere Datenbanken

Durch das Öffnen einer neuen Datenbank werden zuvor geöffnete Datenbanken nicht geschlossen. Diese bleiben geöffnet, wobei die zuletzt geöffnete Datenbank zur aktuellen Datenbank wird.

Festlegen der aktuellen Datenbank

Werden mehrere Datenbanken geöffnet, legt Visual FoxPro die zuletzt geöffnete Datenbank als die aktuelle Datenbank fest. Tabellen oder andere Objekte, die Sie erstellen oder hinzufügen, werden standardmäßig immer Bestandteil der aktuellen Datenbank. Befehle und Funktionen, die geöffnete Datenbanken bearbeiten, wie z. B. ADD TABLE oder DBC( ), werden für die aktuelle Datenbank ausgeführt.

Innerhalb der Benutzeroberfläche oder mit dem SET DATABASE-Befehl können Sie eine andere Datenbank als aktuelle Datenbank festlegen.

So legen Sie die aktuelle Datenbank fest

  • Wählen Sie auf der Standard-Symbolleiste eine Datenbank im Feld Datenbanken aus.

    - Oder -

  • Verwenden Sie den SET DATABASE-Befehl.

Der folgende Code öffnet z. B. drei Datenbanken, legt die erste Datenbank als aktuelle Datenbank fest und verwendet dann die DBC( )-Funktion zur Anzeige des Namens der aktuellen Datenbank.

OPEN DATABASE testdata
OPEN DATABASE tastrade
OPEN DATABASE sample
SET DATABASE TO testdata
? DBC( )

Tipp   Es ist möglich, dass Visual FoxPro beim Ausführen einer Abfrage oder eines Formulars mehrere benötigte Datenbanken automatisch öffnet. Stellen Sie dabei sicher, dass Sie mit der richtigen Datenbank arbeiten, indem Sie vor dem Ausführen von Befehlen, die die aktuelle Datenbank betreffen, die aktuelle Datenbank immer explizit festlegen.

Auswählen von Tabellen in der aktuellen Datenbank

Tabellen in der aktuellen Datenbank können mit dem USE-Befehl ausgewählt werden.

So wählen Sie eine Tabelle der aktuellen Datenbank aus

  • Verwenden Sie den USE-Befehl und das Symbol ?.

    Das Dialogfeld Öffnen, in dem Sie die zu öffnende Tabelle auswählen können, wird angezeigt.

Der folgende Code öffnet z. B. die Datenbank sales und fordert Sie auf, eine Tabelle aus der Liste der Tabellen in der Datenbank auszuwählen:

OPEN DATABASE SALES
USE ?

Soll eine Tabelle geöffnet werden, die nicht der geöffneten Datenbank zugeordnet ist, klicken Sie im Dialogfeld Öffnen auf Andere.

Schließen einer Datenbank

Geöffnete Datenbanken können mit dem Projekt-Manager oder dem CLOSE DATABASE-Befehl geschlossen werden.

So schließen Sie eine Datenbank

  • Klicken Sie im Projekt-Manager auf eine Datenbank und dann auf Schließen.

    - Oder -

  • Verwenden Sie den CLOSE DATABASE-Befehl.

Der folgende Code schließt z. B. die Datenbank testdata:

SET DATABASE TO testdata
CLOSE DATABASE

Bei beiden Möglichkeiten wird die Datenbank automatisch geschlossen. Sie können Datenbanken und alle anderen geöffneten Objekte außerdem schließen, indem Sie den CLOSE-Befehl mit der ALL-Klausel verwenden.

Das Ausführen des CLOSE DATABASE-Befehls im Befehlsfenster schließt keine Datenbanken, die auf eine der folgenden Arten geöffnet wurden:

  • Unter Verwendung des Projekt-Managers (wenn Sie die Gliederung zur Anzeige des Datenbankinhaltes erweitert haben).
  • Unter Verwendung eines Formulars, das in einer eigenen Datensitzung ausgeführt wird.

In diesen beiden Fällen bleibt die Datenbank geöffnet, bis sie im Projekt-Manager geschlossen oder die Ausführung des Formulars beendet wird.

Geltungsbereichsauflösung

In Visual FoxPro wird die aktuelle Datenbank als der primäre Geltungsbereich für benannte Objekte, wie z. B. Tabellen, verwendet. Wenn eine Datenbank geöffnet ist, sucht Visual FoxPro zunächst innerhalb dieser Datenbank nach allen angeforderten Objekten, wie z. B. Tabellen, Ansichten, Verbindungen usw. Wenn das Objekt nicht in der Datenbank gefunden wird, sucht Visual FoxPro unter Verwendung des Standardsuchpfades.

Angenommen, die Tabelle customer ist mit der Datenbank sales verbunden, dann findet Visual FoxPro die Tabelle customer in der Datenbank immer, wenn folgende Befehle ausgeführt werden:

OPEN DATABASE SALES
ADD TABLE F:\SOURCE\CUSTOMER.DBF
USE CUSTOMER

Wird der folgende Befehl ausgeführt, durchsucht Visual FoxPro zuerst die aktuelle Datenbank nach der Tabelle products:

USE PRODUCTS

Befindet sich products nicht in der aktuellen Datenbank, sucht Visual FoxPro außerhalb der Datenbank unter Verwendung des standardmäßigen Suchpfades.

Anmerkung   Soll der Zugriff auf eine Tabelle, die sich entweder innerhalb oder außerhalb einer Datenbank befindet, möglich sein, können Sie den vollen Pfadnamen angeben (z. B. wenn eine Tabelle möglicherweise verschoben wird). Jedoch ist die Leistung höher, wenn Sie als Verweis nur den Tabellennamen angeben, da Visual FoxPro auf Namen von Datenbanktabellen schneller zugreifen kann als auf Namen, die mit dem vollen Pfadnamen angegeben werden.

Siehe auch

Verwalten von Datenbanken | Behandeln von Datenbankfehlern | Gültigkeitsprüfung einer Datenbank | Projekt-Manager | OPEN DATABASE | SET DATABASE | USE | CLOSE | Erstellen von Datenbanken | Arbeiten mit Datenbanken