SQLDataReader

11/09/2008 - 14:29 von marcel | Report spam
Hallo NG,


ich habe eine Frage zu dem Locking Verhalten von ado.net. Bisher bin
ich davon ausgegangen das beim ExecuteReader (SQLClient Data Provider)
ein shared Lock auf die Datensatzmenge gemacht wird. So dass man im
Read Vorgang kein UPDATE Befehl ausführen kann, der einen DS dieser
Menge betrifft (Da ein Update Befehl ja einen Exclusiven lock
anfordert).


wieso funktioniert aber folgender konstrukt:

<code>
reader = da.ExecuteReader("SELECT * FROM MyTable")

while(reader.Read())
{
da.ExecuteScalar("UPDATE MyTable SET Field=1");
}
</code>

ich hàtte jetzt vermutet, das er beim UPDATE einfach stehen bleibt...
Kann es eventuell eine Einstellung am SQL Server 2005 sein?

Vielen Dank im voraus!

gruss marcel


PS: Laut SQL Profiler finden recht viele locks UND _unlocks_ beim
ExecuteReader Aufruf statt??
 

Lesen sie die antworten

#1 marcel
15/09/2008 - 15:41 | Warnen spam
Der Thread geht weiter in der NG:
microsoft.public.de.german.entwickler.dotnet.csharp (13.09.2008)

Ähnliche fragen