Sie können SQL SELECT-Anweisungen bei versionierten Sichten ausführen, um auf versionierte Daten zuzugreifen.
Lesen aus der Default-Version
Beim Ausführen von SQL-Anweisungen für die Default-Version stehen zwei Optionen zur Verfügung: Sie können den aktuellen Status lesen oder aus einem angegeben Versionsstatus lesen.
Lesen des aktuellen Status der Default-Version
Versionierte Sichten greifen automatisch auf den aktuellen Status der Default-Version zu. Wenn Sie SELECT-Anweisungen bei einer versionierten Sicht ausführen, greift diese auf den aktuellen Status der Default-Version zum Zeitpunkt der Ausführung der Anweisung zu. Wenn andere Benutzer Bearbeitungen an der Default-Version vornehmen (und dadurch den Status ändern, auf den die Default-Version verweist), werden bei Ihren nachfolgenden Abfragen der letzte Status der Default-Version und die Bearbeitungen der anderen Benutzer angezeigt.
Lesen eines bestimmten Versionsstatus
Wenn Sie einen bestimmten Status der Default-Version abfragen möchten und der Status sich während der Abfrage nicht ändern soll, führen Sie die gespeicherte Prozedur "setcurrentversion" aus. Mit dieser Prozedur wird der angegebene Versionsname überprüft und der Datenbank-State intern festgelegt. Wenn Sie "setcurrentversion" für die Default-Version ausführen, verweisen Abfragen, die für die Default-Version ausgeführt werden, immer auf die Default-Version, die beim Ausführen der gespeicherten Prozedur "setcurrentversion" referenziert wird.
Führen Sie "setcurrentversion" über einen SQL-Client aus. Folgende Syntax wird verwendet:
CALL sde.setcurrentversion('<version_name>',?,?)
Diese gespeicherte Prozedur kann bei Bedarf erneut ausgeführt werden, um den aktuellen Status der versionierten Tabelle zurückzugeben.
- Stellen Sie sicher, dass eine versionierte Sicht für die versionierte Feature-Class oder die Tabelle vorhanden ist, auf die Sie zugreifen möchten.
Ab ArcGIS 10.1 werden versionierte Sichten erstellt, wenn Sie Daten versionieren. Wenn Ihre Daten vor 10.1 als versioniert registriert wurden, können Sie eine versionierte Sicht für ein versioniertes Dataset im Kataloginhaltsverzeichnis in ArcMap erstellen, das über keine solche verfügt. Klicken Sie dazu im Kataloginhaltsverzeichnis mit der rechten Maustaste auf das Dataset, zeigen Sie auf Verwalten und klicken Sie dann auf SQL-Zugriff aktivieren.
- Öffnen Sie einen SQL-Client, und rufen Sie die gespeicherte Prozedur "setcurrentversion" auf, um die Version auf "Default" festzulegen.
CALL sde.setcurrentversion('DEFAULT',?,?)
Die Fragezeichen stehen für Meldungscodeausgabe und Meldungsausgabe. Meldungscodeausgabe und Meldungsausgabe sind die SQL-Codes und SQL-Meldungen, die nach dem Ausführen der Funktion zurückgegeben werden. Wenn Sie Fragezeichen übergeben, werden Code und Meldungen an Sie zurückgegeben.
- Führen Sie bei der versionierten Sicht eine SELECT-Anweisung aus, um versionierte Daten aus der Geodatabase zu lesen.
Im folgenden Beispiel lautet die versionierte Sicht "sightings_ev":
SELECT ID, SPECIES, REPORTER FROM SIGHTINGS_EV WHERE REPORTER = 'chuck'
Lesen einer anderen als der Default-Version
Sie können die gespeicherte Prozedur "setcurrentversion" auch zum Abfragen einer anderen als der Default-Version ausführen. Mit dieser Prozedur wird der angegebene Versionsname überprüft und der entsprechende Versionsstatus intern festgelegt. Abfragen der Version verweisen immer auf den Status der Version, auf die zu dem Zeitpunkt verwiesen wurde, zu dem Sie die gespeicherte Prozedur "setcurrentversion" ausgeführt haben.
Diese Prozedur kann nach Bedarf erneut aufgerufen werden, um zu anderen Versionen zu wechseln, und sie kann jedes Mal beim Aktualisieren des Workspace aufgerufen werden, um den aktuellen Zustand der versionierten Tabelle an die aufrufende Anwendung zurückzugeben.
Die folgenden Schritte zeigen Ihnen, wie "setcurrentversion" für die Abfrage einer bestimmten Version ausgeführt wird, die keine Default-Version ist:
- Stellen Sie sicher, dass eine versionierte Sicht für die versionierte Feature-Class oder die Tabelle vorhanden ist, auf die Sie zugreifen möchten.
Versionierte Sichten werden erstellt, wenn Sie eine Tabelle, eine Feature-Class oder ein Feature-Dataset als versioniert registrieren. Wenn Ihre Daten jedoch vor ArcGIS 10.1 versioniert wurden, können Sie eine versionierte Sicht erstellen. Klicken Sie dazu mit der rechten Maustaste auf das Dataset, zeigen Sie auf Verwalten und klicken Sie dann auf SQL-Zugriff aktivieren.
- Öffnen Sie einen SQL-Client und rufen Sie die gespeicherte Prozedur "setcurrentversion" auf, um die Version festzulegen, die Sie abfragen möchten.
Im folgenden Beispiel wird "field_inspections" als abzufragende Version festgelegt:
CALL sde.setcurrentversion('FIELD_INSPECTIONS',?,?)
Die Fragezeichen stehen für Meldungscodeausgabe und Meldungsausgabe. Meldungscodeausgabe und Meldungsausgabe sind die SQL-Codes und SQL-Meldungen, die nach dem Ausführen der Funktion zurückgegeben werden. Wenn Sie Fragezeichen übergeben, werden Code und Meldungen an Sie zurückgegeben.
- Führen Sie bei der versionierten Sicht eine SELECT-Anweisung aus, um versionierte Daten aus der Geodatabase zu lesen.
Im folgenden Beispiel lautet die versionierte Sicht "code_ev":
SELECT owner, site_address, region FROM code_ev WHERE region = 'b'
Wenn Sie zum Abfragen des aktuellen Status der Default-Version zurückkehren müssen, führen Sie die Prozedur "set_default" aus.
CALL sde.set_default;