Gilt für
SQL Server Compact 4.0

Problembeschreibung

Es wird davon ausgegangen, dass Sie das leer Intervall in der Verbindungszeichenfolge in der maximalen Anzahl von Sekunden angegeben haben, bevor zugesicherte Transaktionen in Microsoft SQL Server Compact 4,0 auf den Datenträger geleert werden. In diesem Fall kann es sein, dass die zugesicherten Transaktionen viel Zeit in Anspruch nehmen, als das Flush-Intervall auf die Festplatte geleert wird oder nicht sogar auf die Festplatte geleert wird. Darüber hinaus tritt ein Datenverlust auf, wenn eine anormale Programmbeendigung vorliegt.

Fehlerbehebung

Der Hotfix zur Behebung dieses Problems ist in einem on-Demand-Hotfix-Updatepaket für SQL Server Compact 4,0 Service Pack 1 enthalten. Weitere Informationen dazu, wie Sie dieses on-Demand-Hotfix-Updatepaket für SQL Server Compact 4,0 erhalten, finden Sie in folgendem Artikel der Microsoft Knowledge Base:

2960153 On-Demand-Hotfix-Updatepaket für SQL Server Compact 4,0 Service Pack 1

Problemumgehung

Um dieses Problem zu umgehen, verwenden Sie CommitMode. immediate , um die Änderungen sofort zu leeren, anstatt sich auf das Flush-Intervallzu verlassen. Der folgende Beispielcode veranschaulicht dieses Verfahren:conn.ConnectionString = "Data Source = c:\temp\SalesData.sdf; " conn.Open() Dim tx As SqlCeTransaction tx = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted) com = conn.CreateCommand() com.Transaction = tx Dim a As Integer a = 101 While (a <= 1000) com.CommandText = "insert into Orders values (" + Convert.ToString(a) + ", 'best', 200)" com.ExecuteNonQuery() a = a + 1 End While tx.Commit(CommitMode.Immediate)

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.