KB2979868 – POPRAVKA: Za brisanje izvršenih transakcija u SQL Server Compact 4.0 potrebno je više vremena od intervala ispiranja

Primenjuje se na
SQL Server Compact 4.0

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