Skip to content

Schreiben von „static readonly“ Variablen

5. Dezember 2011

Wenn man eine CLR für den SQL Server entwickelt benötigt man manchmal eine statische Variable. Die Statische Variablen haben aber den Nachteil, dass sie als readonly erstellt werden müssen, d.h. man kann ihren Wert nur einmal festlegen. Das kann man aber umgehen, indem man die Variablen einfach als Array erstellt. Das Array selber ist nicht mehr veränderbar, seine Größe ist immer Fest. Aber der Inhalt im Array kann immer verändert werden.

Anstatt

public static readonly string MeineVariable = "Text123";

schreibt man einfach

public static readonly string[] MeineVariable = new string[1];

Im Code muss man anstatt MeineVariable dann MeineVariable[0] verwenden.

Was aber wichtig ist:

Die static readonly Felder werden im SQL Server für jede Assembly nur einmal im Speicher gehalten, egal wieviele Proceduraufrufe in der Assembly erfolgen. Wenn ein Aufruf der CLR-Prozedur so lange dauert, dass in der zwischenzeit eine Prozedur in der gleichen Assembly aufgerufen wird welche die gleiche static readonlyVariable verändert, betrifft die Änderung der Variable evtl. jede laufende Prozedur! D.h. man muss daran Denken, dass der Inhalt einer Variable von einem 2. Prozeduraufruf in der Assembly jederzeit verändert werden kann.

Advertisements

From → MS SQL CLR

Schreibe einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: