Select Case LCase(TableName )
                    '------------------------------------Adressen
                Case LCase("Adressen")

RemoveDsCollection("GetDsAdressenDetailByUserID_" & aktPKValue) RemoveDsCollection("GetDsAdressenListByCID_" & Row("CID"))


Wenn du es mit einem if machst, kannst du die zusammengesetzten Keys "GetDsAdressenDetailByUserID_" mit an die Funktion uebergeben. diese kann dann den Namen komplett zusammensetzen und du brauchst in Deiner Datenverabeitungsschicht keine Schlüssel hart eincodieren.

Die Funktion wird dann einfach mit entsprechendem Schlüssel aus der Oberfläche oder der Logik heraus aufgerufen. Analog zum Aufruf des Selects

Function DeleteDsAdressenDetailByUserID(UserID as Integer)

        Dim SQL as string="SELECT * from Adressen where UesrId=" & UserID

        Dim CacheName as String = "GetDsAdressenDetailByUserID_" & UserID

        Return DeleteDataset(SQL,CacheName)

end Function



DeleteDataset ruft dann deine Cachefunktion CheckDsCollection(CacheName) auf und du must da keinen switch einbauen.


Grüße, Daniel



Chris wrote:
Verwaltung ist vielleicht übertrieben... aber:

Wie gesagt, ich arbeite fast nur mit Datasets und (leider) viel mit Access.

Es gibt ein zentrales Modul in dem alle Datasets generiert werden.
Ausschließlich hier werden SQL-Abfragen zusammengesetzt oder definiert.

Das heißt, wenn ich in der Application irgendwo z.B. eine Adresse zu einer
UserID benötige ... gehe ich zunächst in das Modul mache eine neue
Function z.B.

Function GetDsAdressenDetailByUserID(UserID as Integer) as dataset

        Dim SQL as string="SELECT * from Adressen where UesrId=" & UserID

        Dim CacheName as String = "GetDsAdressenDetailByUserID_" & UserID

        Return GetDataset(SQL,CacheName)

end Function

In GetDataset(SQL,CacheName) wird dann geprüft, ob in der Hashtable das Objekt
vorhanden ist und entsprechend generiert.

Entsprechend Hierzu gibt es wiederum auch zentrale Funktionen für Update
Und Insert  für die Datenbank. Wobei hier für mich ja nur der Tabellenname
der PK und die ID wichtig sind um zu entscheiden welche Details gelöscht werden
müssen.

Beim Update oder Insert  wird dann die hashtable überprüft ob Datasets 
betroffen sind

Function CheckDsCollection(ByVal ds As DataSet, ByVal dsAlt As DataSet,_
                                         ByVal TableName As String, ByVal PK As 
String)
                [...]

           Select Case LCase(TableName )
                    '------------------------------------Adressen
                Case LCase("Adressen")

                    RemoveDsCollection("GetDsAdressenDetailByUserID_" & 
aktPKValue)
                    RemoveDsCollection("GetDsAdressenListByCID_" & Row("CID"))
                [...]

Es werden also gezielt einzelne Datasets herausgelöscht.
so etwas:
        RemoveDsCollection("GetDsAdressenDetailByUserID_")
würde dann alle AdressenDetails löschen.

Hört sich komplizierter an als es ist.... Am Anfang vergißt man natürlich
den Cache hier und da zu löschen .... Aber alles ist schön zentral zusammen.
Alles wird überall recycelt. Wie gesagt AccessDB sonst natürlich eher
Stored Procedures verwenden. Hat ein bischen was ähnliches.

Gruß, Chris






-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Auftrag von Thomas Bandt
Gesendet: Mittwoch, 3. August 2005 23:46
An: [email protected]
Betreff: RE: AW: AW: [Asp.net] Output Caching (ASP.NET 2.0)




An einer Art von Verwaltung kommt man doch nicht vorbei, wenn
man nicht bei jeder
Datenbankänderung alles löschen will.

Wie schaut denn deine Verwaltung aus?

Neugierige Grüße ;-)


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an