Symptom
Anta att du har angett rensnings intervall i maximalt antal sekunder i anslutnings strängen innan dedikerade transaktioner har tömts till disk i Microsoft SQL Server Compact 4,0. I den här situationen kan det ta mycket lång tid för de genomförda transaktionerna att tömma intervallet för att rensa till disk eller kanske inte ens tas bort till disk. Dessutom uppstår data förlust om det är onormalt att avsluta programmet.
Lösning
Snabb korrigeringen som åtgärdar problemet ingår i ett uppdaterings paket på begäran för SQL Server Compact 4,0 Service Pack 1. Om du vill veta mer om hur du skaffar den här uppdateringen av snabb korrigering på begäran för SQL Server Compact 4,0 klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:
2960153 Uppdaterings paket för på begäran för SQL Server Compact 4,0 Service Pack 1
Lösning
Undvik problemet genom att använda CommitMode. Immediate för att omedelbart tömma ändringarna i stället för att förlita dig från tömnings intervallet. Följande exempel kod visar den här metoden: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 har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".