Simptome
Să presupunem că ați specificat intervalul de culoare din numărul maxim de secunde din șirul de conexiune înainte ca tranzacțiile săvârșite să fie eliminate pe disc în Microsoft SQL Server Compact 4,0. În această situație, tranzacțiile săvârșite pot dura mai mult timp decât intervalul de culoare care urmează să fie îmbujorat pe disc sau poate să nu fie chiar aruncat pe disc. În plus, pierderea de date apare dacă există o reziliere anormală a programului.
Rezolvare
Remedierea rapidă care rezolvă această problemă este inclusă într-un pachet de actualizare la cerere de remediere rapidă pentru SQL Server Compact 4,0 Service Pack 1. Pentru mai multe informații despre cum se obține acest pachet de actualizare la cerere de remediere rapidă pentru SQL Server Compact 4,0, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2960153 Pachetul de actualizare de remediere rapidă la cerere pentru SQL Server Compact 4,0 Service Pack 1
Soluție de evitare
Pentru a rezolva această problemă, utilizați CommitMode. imediat pentru a spăla imediat modificările în loc să se bazeze pe intervalul de culoare. Următorul exemplu de cod demonstrează această tehnică: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)
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.