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