Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Datenintegration und Datenzugriff » WKL Database Gateway » Anleitungen » So machen Sie Tabellen ohne Zeilenversion bearbeitbar

So machen Sie Tabellen ohne Zeilenversion bearbeitbar

Eine Tabelle ohne Zeilenversion lässt sich über OData und aus Access nicht sicher ändern: Es gibt keinen Wert, an dem eine fremde Änderung erkennbar wäre, und der ODBC-Treiber weist Ändern und Löschen ab. Ein berechneter Zeilenstempel schließt diese Lücke, ohne das Schema zu ändern.

Lösungsübersicht

Der Dienst berechnet für freigeschaltete Tabellen eine Prüfsumme über alle gespeicherten Spalten und bietet sie als Zeilenversion an (Spalte gw_rowstamp). Wie er sie bildet und was sie nicht leistet: Schreiben und Schreibkonflikte.

Ein Eintrag nennt die Tabellen in einer von drei Formen; Groß- und Kleinschreibung zählen nicht:

EintragBedeutung
schema.tabellediese eine Tabelle
schema.*jede Tabelle des Schemas
*jede Tabelle der Datenquelle

Umsetzung

Mit Verwaltungsspeicher (Verwaltungsanwendung):

  1. Öffnen Sie Datenquellen, und klappen Sie die Datenquelle mit dem Pfeil am Zeilenanfang auf.
  2. Legen Sie im Register Tabellen-Einstellungen eine Zeile an: Einstellung row_stamp, Muster etwa dbo.Rolle.
  3. Verlassen Sie die Zeile. Ein Muster in anderer Form wird abgelehnt.

Ohne Verwaltungsspeicher (Konfigurationsdatei): Ergänzen Sie den Eintrag der Datenquelle, und starten Sie den Dienst neu:

{ "Name": "fachdaten", "Provider": "sqlserver", "ConnectionString": "…",
  "RowStampTables": [ "dbo.Rolle", "stamm.*" ] }

Danach in beiden Fällen:

  1. Aktualisieren Sie in Access die Verknüpfungen der Tabellen (Externe Daten > Tabellenverknüpfungs-Manager), damit Access die Spalte gw_rowstamp kennt.
  2. Prüfen Sie: Das Schemadokument nennt gw_rowstamp für die Tabelle, und eine Änderung in Access gelingt; eine fremde Änderung dazwischen ergibt den gewohnten Schreibkonflikt.

Hinweise

  • Keinen Stempel bekommt eine gelistete Tabelle ohne eindeutigen Schlüssel, eine Tabelle, die selbst eine Spalte gw_rowstamp führt, und eine Tabelle mit einem Spaltentyp, den die Prüfsumme nicht abdeckt – ein Stempel, der eine Spalte ausließe, übersähe jede Änderung an ihr. Das Protokoll nennt beim Laden des Katalogs Tabelle und Grund (Zeilenstempel fuer … nicht moeglich).
  • Eine Tabelle mit Zeilenversion behält sie, auch unter *.
  • Sichten bekommen keinen Stempel. RowStampTables wirkt nur auf Tabellen; ein Muster wie dbo.* trifft die Sichten des Schemas nicht, eine Sicht wird ohne Stempel angeboten. Wählt eine Sicht die Zeilenversionsspalte ihrer Basistabelle aus, meldet der Dienst diese Spalte als ihre Zeilenversion; eine Sicht über eine einzelne Tabelle bearbeitet Access damit wie eine Tabelle. Ohne eine solche Spalte bleibt eine verknüpfte Sicht in Access nur lesbar. Wo Benutzer bearbeiten, verknüpfen Sie die Basistabelle zum Schreiben und die Sicht zum Lesen.
  • Wo das Schema geändert werden darf, ist eine echte Zeilenversionsspalte die bessere Antwort: genau, von der Datenbank gepflegt und beim Lesen kostenlos. Der Stempel wird bei jedem Lesen über jede Spalte berechnet.

Verwandte Themen

de/wiki/data-conectivity/database-gateway/how-to/enable-row-stamps.txt · Zuletzt geändert: von Wolfgang van der Stille