Simptomi
Pretpostavimo da ste u niska veze naveli interval ispiranja u maksimalnom broju sekundi pre nego što izvršene transakcije budu isprane na disku u sistemu Microsoft SQL Server Compact 4.0. U ovom slučaju, izvršene transakcije mogu potrajati mnogo duže od intervala ispiranja da budu isprane na disku ili čak ne moraju ni da se isperu na disk. Pored toga, do gubitka podataka dolazi ako dođe do nepravilnog prekida programa.
Rešenje
Hitna ispravka koja rešava ovaj problem uključena je u paket ažuriranja hitne ispravke na zahtev za SQL Server Compact 4.0 servisni paket 1.
Da biste dobili više informacija o tome kako da nabavite paket ispravki za hitne ispravke na zahtev za SQL Server Compact 4.0, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2960153 paketa hitnih ispravki na zahtev za SQL Server Compact 4.0 servisni paket 1
Privremeno rešenje
Da biste zaobišli ovaj problem, koristite CommitMode.Immediate da biste odmah isprali promene umesto da se oslanjate na interval ispiranja. Sledeći uzorak koda demonstrira ovu tehniku:conn. ConnectionString = "Data Source = c:\temp\SalesData.sdf; "
Conn. Otvori()
Dim tx As SqlCeTransaction
TX = Conn. BeginTransaction(System.Data.IsolationLevel.ReadCommitted)
COM = conn. CreateCommand()
com. Transaction = tx
Dim a As Integer
a = 101
Dok (a <= 1000)
com. CommandText = "umetni vrednosti u porudžbine (" + Convert.ToString(a) + ", 'najbolje', 200)"
com. ExecuteNonQuery()
a = a + 1
Završi dok
TX. Commit(CommitMode.Immediate)
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.