Offline-Views in VFP Arbeiten mit Offline-Views von Datenbanken unter Microsoft Visual FoxPro Wizards & Builders GmbH Diese Schulung dient der Einführung in das Arbeiten mit und den Einsatz von Offline-Views auf Daten aus Datenbankcontainern unter Microsoft Visual FoxPro Wizards & Builders GmbH Themenübersicht Wer benötigt Offline-Views Wiederholung „Arbeiten mit Views“ Wie erzeugt man Offline-Views Tableupdate Konfliktmanagement DropOffline Was geht, was geht nicht Vorteile von Offline-Views Wizards & Builders GmbH Where do you want to go today? Offline-Views erlauben die: Mitnahme von Daten auf Laptops und anderen Systemen Änderung oder Erfassung Einspielen der Änderungen Wizards & Builders GmbH Wer benötigt Offline-Views? Offensichtliche Anwender: „Road warrior“, Handelsreisende/Vertreter für Auftragserfassung vor Ort Nicht so offensichtliche Anwender: Hinweis: Wieviele Nächte und Wochen-enden war man mit Wartungsarbeiten für Datenbankapplikationen beschäftigt? Sammel-Updates für „Data Warehouse“ Eigene Ideen? Wizards & Builders GmbH Wiederholung „Views“ Wiederholung zum Einsatz von „Views“ unter Microsoft Visual FoxPro Wizards & Builders GmbH “Let’s Start With A Re-View…” Grundsätzliche eine Ergebnistabelle aus einem SQL-SELECT-Befehl Quelle eine oder mehrere Tabellen Quelle lokal oder Remote (Client/Server) Quelle kann ein anderer View sein Kontrolle über Update-Verhalten (Buffering) Erlaubt Migration nach Client/Server Ein View hat keine Indizes, man kann welche anlegen (Zeitaufwand) Wizards & Builders GmbH Ein Updateable View ist... Ein View mit zusätzlichen Definitionen über Einfügen, Ändern und Löschen von Datensätzen Feldweise Kontrolle über Änderungen Besser steuerbar als Record-Buffering Arbeiten generell gut in Visual FoxPro Views verarbeiten nicht automatisch Feld- und Satzregeln, die auf die Ursprungs-tabellen gelegt wurden... Wizards & Builders GmbH Der große Vorteil Wenn alle Komponenten einer Applikation auf Views basieren statt auf lokalen Tabellen, kann man leicht nach Client/Server migrieren (wenn man das will) ... Wizards & Builders GmbH Updating Data in a View... Once a view is defined as updateable, updates are easy: Interaktiv (BROWSE) Programmatisch über die Befehle REPLACE, GATHER, APPEND Use bound controls (object.controlsource = viewname.fieldname) Wizards & Builders GmbH Ein Balance-Akt The smaller the dataset within the view, the faster it will perform The view is only a “snapshot” of the data The data in the view doesn’t reflect changes to the underlying data source until requeried Wizards & Builders GmbH Arbeiten mit Offline-Views Praxis des Arbeitens mit Offline-Views unter Microsoft Visual FoxPro Wizards & Builders GmbH Was sind Offline Views Derivat eines updateable Views Dateneinsicht und Änderungen ohne Vorhandensein des DBC Speichert Änderungen bis er “reattached” wird zum DBC Wenn “reattached” sind alle Updates „gebuffert“ (im Puffer) Wizards & Builders GmbH Wie erzeugt man Offline-Views CREATE VIEW CREATEOFFLINE(“vname”) USE vname ADMIN zur Online-Anzeige der Änderungen USE vname ONLINE zum Rückverbinden mit den Originaldaten TABLEUPDATE() DBGETPROP(“vname”, “view”,”offline”) zum Feststellen des „Offline“-Status eines Views Wizards & Builders GmbH TABLEUPDATE() New functionality in VFP 5 to commit all non-conflict rows on first pass 2 (the magic number) TABLEUPDATE([nRows [, lForce]] [, cTableAlias | nWorkArea] [, cErrorArray] If you pass cErrorArray, you get back an array of record numbers for all failed rows Wizards & Builders GmbH Konflikt-Management (1) Starting point: examine all rules and triggers in the data sources of your online view Remember that triggers won’t fire until the view is online’d and the underlying buffer is TABLEUPDATE’d Wizards & Builders GmbH Konflikt-Management (2) Once online’d and TABLEUPDATE’d, the buffered changes can’t be “unbuffered” You must either force or discard each update If you discard anything, your data reverts to the state of the view, not the source. Wizards & Builders GmbH Konflikt-Management (3) Resolution policy and procedures needed to manage conflicts Dump updates Force updates Send e-mail Create logs for manual review Wizards & Builders GmbH DROPOFFLINE() DROPOFFLINE(“viewname”). NOTE: Check to make sure the view is closed and that the database is opened, before issuing the DROPOFFLINE Return value indicates success. (.F. indicates that the view was not “dropped” -- not its status) Wizards & Builders GmbH Vor- und Nachteile Vor- und Nachteile von Offline-Views unter Microsoft Visual FoxPro Wizards & Builders GmbH Diverse “Can’s” und “Can’ts” Can: Can: Can’t: Can’t: Can’t: Can’t: Can’t: Löschen einzelner Sätze Setzen von Relationen PACK ZAP INSERT (xBase nicht SQL) =REQUERY() Referentielle Integrität Wizards & Builders GmbH One view, many users Offline views are shareable! Conflict management just like a multi-user table Wizards & Builders GmbH Many views, many users Required to support multiple “road warriors” A “socket” is needed in the DBC for each offline view, but they are interchangeable if they have exactly the same view definition (including parameter value in parameterized queries) Can be genned automatically -- consult GENDBC for a skeleton Wizards & Builders GmbH Daytime maintenance Consider building offline view support into primary production feature set Return on Investment: Staff can keep working while routine maintenance activities are performed Offline -- Main menu choices encapsulate merging of changes following maintenance Wizards & Builders GmbH Vielen Dank! Das waren die Themen: Wer benötigt Offline-Views Wiederholung „Arbeiten mit Views“ Wie erzeugt man Offline-Views Tableupdate Konfliktmanagement DropOffline Was geht, was geht nicht Vorteile von Offline-Views Wizards & Builders GmbH Wenn Fragen bestehen: Wizards & Builders Methodische SoftwareEntwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175 Wizards & Builders GmbH