Freigeben über


Visual FoxPro als Datenquelle

Eine andere Möglichkeit, Visual FoxPro in eine Unternehmenslösung zu integrieren, besteht darin, es lediglich als eine Komponente, nicht notwendigerweise als Hauptanwendung zu verwenden. In diesem Fall dient Visual FoxPro als Back-End für eine Anwendung, die mit einem anderen Produkt geschrieben wurde. Dies bedeutet, dass der Benutzer Visual FoxPro nicht direkt sieht. Stattdessen wurde die Benutzeroberfläche der Anwendung mit Tools des anderen Produkts geschrieben, und die Anwendung kommuniziert im Hintergrund mit Visual FoxPro, um Daten abzurufen oder zu bearbeiten.

Auch in dieser Rolle arbeitet Visual FoxPro hervorragend, da es sein Datenbankmodul zur Verfügung stellen kann, das anderen Anwendungen schnellen Datenzugriff ermöglicht. Darüber hinaus kann Visual FoxPro anderen Anwendungen seine Objekte und Befehle zur Verfügung stellen, auch die benutzerdefinierten Objekte, die Sie erstellt haben.

Bereitstellen von Visual FoxPro-Daten für andere Programme

Eine Möglichkeit, wie eine unternehmensweite Anwendung von Visual FoxPro profitieren kann, besteht darin, das Visual FoxPro-Datenbankmodul zum Speichern und Verwalten von Daten zu verwenden. Dadurch werden anderen Anwendungen die hochentwickelten Speicher- und Abfragefähigkeiten zugänglich gemacht.

Programme können über den Visual FoxPro OLE DB-Provider eine Verbindung mit Visual FoxPro-Daten herstellen. Dieser Provider macht das Visual FoxPro-Datenbankmodul für VFP SQL-Standardbefehle zugänglich.

Eine Anwendung könnte z. B. Microsoft Excel als Berechnungstool für komplizierte Datenauswertungen verwenden. Wenn die zu verarbeitenden Daten ständig wechseln, kann es sinnvoll sein, sie nicht in einem Arbeitsblatt, sondern in einer Datenbank zu speichern. Das Arbeitsblatt könnte dann so gestaltet werden, dass über den Visual FoxPro OLE DB-Provider eine Verbindung mit der Datenbank hergestellt wird, anschließend die jeweils benötigten Daten gelesen und dann zur weiteren Verarbeitung auf dem Arbeitsblatt angezeigt werden.

Ein weiteres Beispiel könnte eine Kioskanwendung sein, wie z. B. ein Informationsstand in einem Flughafen oder Tagungszentrum. Sie könnten die Informationsanzeige mit einem Programm zum Schreiben von Multimediaanwendungen erstellen. Allerdings wäre es sehr mühsam, die Seiten der Präsentation anzupassen, wenn sich einige der für die Anwendung erforderlichen Daten häufig ändern. Stattdessen könnte das Präsentationsprogramm über den OLE DB-Provider eine Verbindung mit einer Visual FoxPro-Datenbank herstellen und die Daten dann während der Laufzeit lesen.

Weitere Informationen finden Sie in den Hilfethemen zum Visual FoxPro OLE DB-Provider. Diese Hilfe steht auch über die Programmgruppe ODBC zur Verfügung, wenn Sie bei der Installation von Visual FoxPro auch ODBC installiert haben.

Visual FoxPro-Objekte und -Befehle anderen Programmen zur Verfügung stellen

Über die Möglichkeit hinaus, Visual FoxPro-Daten als Teil einer Unternehmenslösung anderen Programmen zur Verfügung zu stellen, können Sie Visual FoxPro-Objekte und -Befehle zugänglich machen. Andere Anwendungen können die Methoden von Visual FoxPro-Objekten aufrufen sowie deren Eigenschaften einstellen, wobei dies nicht nur für die Basisobjekte, sondern auch für Objekte gilt, die in von Ihnen erstellten Klassen definiert sind.

Sie können z. B. mit Microsoft Excel eine Anwendung erstellen, die Daten in einer Visual FoxPro-Datenbank speichert. Statt die Daten lediglich zu lesen und zu schreiben, kann Excel Visual FoxPro-Befehle aufrufen, um ein Formular als Dialogfeld anzuzeigen. Eine Verwendung könnte sein, Daten für eine Ansicht mit Parametern anzufordern.

Visual FoxPro-Objekte können aber auch bereitgestellt werden, indem ein Automatisierungsserver erstellt wird. Dies ermöglicht es Ihnen, anwendungsspezifische Objekte zu erstellen, die nahezu jede Funktion ausführen können, für die Sie mit Visual FoxPro eine Lösung programmieren können (mit dem weiteren Vorteil, dass Sie den Server vertreiben können).

Eine Verwendung eines benutzerdefinierten Servers besteht darin, ein Objekt zu erstellen, das eine Reihe von Geschäftsregeln enthält, die die Integrität von Daten sicherstellen, die eine andere Anwendung an das Objekt übergibt. Sie können z. B. mit Visual FoxPro ein Objekt zum Speichern von Personalinformationen erstellen, das nicht nur prüft, ob die andere Anwendung gültige Personalinformationen übergeben hat, sondern auch die Zugriffsberechtigung des Benutzers prüft, damit sichergestellt ist, dass der Benutzer berechtigt ist, die Personaländerungen vorzunehmen.

Ein benutzerdefinierter Server kann auch ein Objekt bereitstellen, das komplizierte logische Prüfungen für das Aktualisieren oder Lesen von Informationen enthält. Ein Bestellungseingabeobjekt könnte z. B. so gestaltet sein, dass es nicht nur eine Bestellung speichern kann, sondern auch die Protokolldatei der Bestellungen aktualisiert, den Lagerbestand aktualisiert, die Verkaufsprovision ausrechnet usw.

Diese Art von Automatisierungsserver ist ideal, um die "mittlere Ebene" einer dreistufigen Unternehmensanwendung zu erstellen. Bei diesem Modell bilden die Daten die unterste Ebene und die Anwendung die oberste Ebene. Die Funktionalität ist in der Mitte angesiedelt und bietet eine bestimmte, anwendungsunabhängige Ansicht der Daten, die Geschäftsregeln (oder andere Datenverarbeitungsfähigkeiten) enthält, die nicht eindeutig nur zu den Daten oder zu der Anwendung gehören.

Informationen zum Erstellen benutzerdefinierter Automatisierungsserver finden Sie unter Freigeben von Informationen und Hinzufügen von OLE im Abschnitt Erstellen von Automatisierungsservern.

Erstellen eines Datawarehouse mit Visual FoxPro

Sie können mit Visual FoxPro nicht nur eine Anwendung erstellen, sondern das Programm auch verwenden, um ein Datawarehouse oder eine Version der Daten zu erstellen und zu verwalten, die für die Berichterstellung optimiert ist. Sie erstellen ein Datawarehouse, indem Sie die für die Berichterstellung erforderlichen Daten kopieren und die Kopie den Benutzern zugänglich machen, die die Daten benötigen. Indem Sie diese Daten getrennt von Ihren beweglichen Daten verwalten, können Sie:

  • Die Daten so strukturieren, dass die Berichterstellung einfacher oder schneller geht als dies der Fall wäre, wenn die Benutzer Berichte aus den beweglichen Daten erstellen müssten.
  • Die Daten für Berichte an einem von den beweglichen Daten getrennten Ort ablegen. Dadurch gibt es weniger "Streit" um die Daten, das Leistungsverhalten wird verbessert und die Daten können Benutzern zur Verfügung gestellt werden, die aus Sicherheitsgründen nicht auf die beweglichen Daten zugreifen dürfen.

Ein Datawarehouse ist eine Momentansicht der Daten zu dem Zeitpunkt, an dem Sie die Momentansicht erstellt haben. Sie aktualisieren das Datawarehouse in periodischen Abständen, deren Planung sich nach den Anforderungen richtet, die Ihre Anwendung bezüglich der Berichterstellung stellt.

Stellen Sie sich z. B. vor, Sie erstellen eine Anwendung, mit der eine Bibliothek verwaltet werden soll (einschließlich der Materialbestände). Während des Tages wird das System ständig verwendet, da Bibliotheksbesucher Materialien zurückgeben oder ausleihen und das System abfragen, um nach Büchern zu suchen oder Bücher zu reservieren. Neben dem Verwalten dieser einzelnen Vorgänge möchten Bibliotheksangestellte bestimmte Auswertungen erstellen können, um z. B. festzustellen, welche Materialien am beliebtesten sind, welche Bücher überfällig sind usw.

Als Unterstützung für diese Auswertungen kann die Anwendung aus den Vorgangsinformationen ein Datawarehouse erstellen. Die Anwendung kann die Daten periodisch (z. B. jede Nacht) in das Datawarehouse schreiben, und die Bibliotheksangestellten können während des Tages Abfragen erstellen und ausführen, ohne dass sich dies auf das Leistungsverhalten des Systems auswirkt. Außerdem können bestimmte Informationen zu den Besuchern der Bibliothek aus dem Datawarehouse ausgeschlossen sein, denn diese Informationen sind für die Auswertungen nicht erforderlich und könnten als vertrauliche Informationen angesehen werden.

Ein Datawarehouse bringt dann den größten Nutzen, wenn Sie es auf einem Server erstellen, auf dem sich nicht die beweglichen Daten befinden. Befinden sich die beweglichen Daten und das Datawarehouse auf demselben Server, ändert dies nichts an dem Vorteil, dass Sie im Datawarehouse optimierte Daten haben. Allerdings ist zu beachten, dass Benutzer sehr viel Netzverkehr auslösen können, wenn sie Abfragen an das Datawarehouse richten, und dass dieser Netzverkehr sich nachteilig auf das Leistungsverhalten des beweglichen Datensystems auswirken kann.

Wenn Sie das Datawarehouse erstellen, können Sie die Dateien mit den beweglichen Daten einfach in parallele Dateien des Datawarehouse kopieren. Sie können die Daten des Datawarehouse aber auch umstrukturieren, um sie für die Berichterstellung zu optimieren. Sie könnten z. B. für Magazindaten Indizes erstellen, die den Vorlauf bei der Berichterstellung verringern.

Ein weiteres Beispiel ergibt sich daraus, dass die beweglichen Daten normalisiert sein sollten, damit Datenwiederholungen vermieden werden. Für die Daten des Datawarehouse könnte es dagegen sinnvoll sein, Tabellen zu kombinieren, die ansonsten getrennt sind. Dadurch ist es nicht mehr notwendig, Tabellen zu vereinigen, wodurch es für weniger erfahrene Benutzer einfacher wird, Berichte zu erstellen.

Darüber hinaus können Sie den Detaillierungsgrad der Magazindaten an die Anforderungen anpassen, die Ihre Anwendung bezüglich der Berichterstellung stellt. Die größte Flexibilität erreichen Sie, wenn Sie die Magazindaten mit demselben Detaillierungsgrad speichern wie die beweglichen Daten. Wenn die Benutzer dagegen nur Sammelberichte (wie z. B. Tabellenblätter oder Diagramme) erstellen möchten, können Sie die Detaildaten aus der Anwendung zusammenfassen und nur die Sammeldaten im Datawarehouse speichern.

Verwenden von Visual FoxPro als World Wide Web-Suchmodul

Wenn es für Ihre Unternehmenslösung erforderlich ist, einen WWW-Server für das Internet zu erstellen, können Sie Visual FoxPro als Suchmodul in die Anwendung einbinden. Dadurch können Sie Ihre Visual FoxPro-Datenbank jedem zugänglich machen, der entweder über das Internet oder über das Unternehmensnetz (Intranet) auf Ihren Webserver zugreifen kann.

Stellen Sie sich z. B. vor, dass Sie als Teil Ihres unternehmensweiten Intranets ein Verzeichnis mit Personalinformationen zur Verfügung stellen möchten. Angestellte könnten mit ihren Browsern auf eine Seite "Personalinformationen abrufen" zeigen, wodurch eine Seite angezeigt wird, die wie ein Visual FoxPro-Formular aussieht und Textfelder enthält, in die Kriterien eingegeben werden können. Um einen Suchvorgang durchzuführen, würde ein Benutzer den Namen, die unternehmensinterne Telefonnummer, die Abteilung, die Position sowie sonstige zu einem Angestellten verfügbare Informationen eingeben und dann auf die Schaltfläche Suchvorgang starten klicken. Einen kurzen Augenblick später erhielte der Benutzer eine Liste, in der die Angestellten aufgeführt sind, die den Suchkriterien entsprechen. Diese Liste könnte der Benutzer dann als Textdatei speichern und in ein anderes Programm, z. B. eine Textverarbeitung, importieren.

Grundsätzliches zu Visual FoxPro als World Wide Web-Suchmodul

Damit Visual FoxPro als Informationsserver für das Web verwendet werden kann, benötigen Sie grundsätzlich folgende Komponenten:

  • Einen Webserver mit HTTP-Dienst, der unter dem Betriebssystem Microsoft Windows NT oder Windows 2000 ausgeführt wird.
  • Eine Visual FoxPro-Anwendung, die als Automatisierungsserver aufgerufen werden kann. Diese Anwendung kann auf jedem Server ausgeführt werden, auf den der Webserver zugreifen kann.
  • Ein Hilfsmittel, das die Suchergebnisse anzeigt. Dies ist meist eine Webseitenvorlage (Page Template), in die Sie Daten einfügen können.

Bei einer Visual FoxPro-Suche im Web treten üblicherweise die folgenden Ereignisse in der aufgeführten Reihenfolge auf:

  1. Der Benutzer zeigt die Suchseite Ihrer Anwendung an, indem er einen Webbrowser auf die Seite zeigen lässt. Die Suchseite enthält alle von Ihnen gewünschten Texte und Grafiken sowie Textfelder, in die der Benutzer Suchtext eingeben kann.
  2. Der Benutzer klickt auf die Schaltfläche, mit der der Suchvorgang gestartet werden kann. Die in das Formular eingegebenen Daten werden zusammen mit dem Namen Ihrer Suchanwendung für Webseiten an den Webserver gesendet und dort verarbeitet.
  3. Der Webserver ruft Ihre Anwendung mit dem ISAPI-Protokoll (Internet Server API-Protokoll) auf und übergibt ihr einen Parameter, der die Suchinformationen enthält.
  4. Ihre Anwendung sucht nach der Datenbank. Nachdem sie die Ergebnisse abgerufen hat, fügt sie diese in die Webseitenvorlage ein und sendet die Webseite als Datenstrom aus Zeichen zurück an den Server.
  5. Der Webserver sendet die Ergebnisseite an den Browser, der den Suchvorgang ausgelöst hat.
  6. Der Browser zeigt dem Benutzer die Ergebnisseite an.

Wenn Sie bereits Webseiten erstellt haben, sind Ihnen die meisten der genannten Schritte wahrscheinlich vertraut. Sie wissen eventuell bereits, wie Webseiten erstellt werden. Selbst wenn Sie nicht mit dem Entwerfen von Webseiten vertraut sind, werden Sie das Erstellen solcher Seiten vermutlich als recht einfach empfinden.

Ein Beispiel dafür, wie Visual FoxPro als Websuchmodul verwendet werden kann, finden Sie in der Beispieldatei Foxisapi.dll im Visual FoxPro-Verzeichnis …\Samples\Servers\Foxisapi finden. Dieses Unterverzeichnis enthält die Datei Readme.txt, der Sie entnehmen können, wie das Beispiel ausgeführt werden kann.

Siehe auch

Visual FoxPro als Anwendungs-Front-End | Entwicklung für das Unternehmen | Visual FoxPro-Unternehmenslösungen | Erstellen von Automatisierungsservern | Freigeben von Informationen und Hinzufügen von OLE