KB2979868-åtgärd: tar längre tid än rensnings intervall för att rensa genomförda transaktioner i SQL Server Compact 4,0

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".

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×