Autovalues für SDE und Oracle

Folgende Schritte sind zum Einrichten von AutoValues am SDE erforderlich:

1. Anlegen einer AutoValues Tabelle am Server (SQL oder Oracle)

Hier ist es nicht möglich die Tabelle über ArcCatalog anzulegen. Die Tabelle muss direkt in der Datenbank angelegt werden.

Die Tabelle muss bestimmte Felder beinhalten. Deshalb ist es am einfachsten den SQL Aufruf zum Anlegen zu kopieren:

CREATE TABLE MyAutoValues (ID INT PRIMARY KEY, AVID char(50), FCFLDCOMBI char(850), MAXVALUE INT, AVAILABLE smallint)

 

Die Tabelle kann beliebig benannt werden.

Auf der Tabelle muss ein eindeutiger Index vergeben werden. Dies gilt für die Felder AVID und FCFLDCOMBI:

CREATE UNIQUE INDEX AutoValsIndex ON MyAutoValues (AVID,FCFLDCOMBI)

2. Einrichten der Connection im AutoValues Connection File AutoValues.connection

Die Datei muss händisch im Verzeichnis C:\..\Configuration\Editor angelegt werden. Dabei müssen drei Dinge definiert werden:

Name der Connection

Name des AutoValue TableNames inkl. Schema

Connection String
Der Connectionstring richtet sich nach den Vorgaben des verwendeten OLE DB Providers:

oSQLOLEDB        Microsoft  OLE DB Provider for SQL Server, SQL Server

oSQLNCLI10 (*)        SQL Server Native Client 10.0 OLE DB Provider, SQL Server 2008 und älter

oSQLNCLI11 (*)        SQL Server Native Client 11.0 OLE DB Provider, SQL Server 2012 und neuer

oMSDAORA        Microsoft OL DB Provider for Oracle

oOraOLEDB.Oracle (*)        Oracle Provider for OLE DB

(*) muss extra installiert werden.
clip0030

3. Definieren der AutoValues in den Funktionsfeldern

Für SDE wird das eigene Funktionsfeld func.SdeAutoValue verwendet. Sobald ein Feature gezeichnet wird, wird die AutoValues Tabelle automatisch befüllt.

 

Die Funktion func.SdeAutoValue benötig zusätzlich zu den 3 Parameter der normalen AutoValues-Funktion noch einen 4. Parameter, der den Link zur Connection im Connectionfile (Name der Connection) herstellt.

z.B.:

func.SdeAutoValue("Av_Testxx,"GISDATA.Nfl/NS,","i-test-sde10sql user=sde")

func.SdeAutoValue([AutoValueId - kann Text sein],[FeatureClass/Feld-Kombination. Optional],[Trennzeichnen - wenn leer wird Default verwendet, Optional],[Name der Connection im Connectionfile])