KB2979868 – OPRAVA: Vyprázdnenie potvrdených transakcií v systéme SQL Server Compact 4.0 trvá dlhšie, než je interval vyprázdnenia

Vzťahuje sa na
SQL Server Compact 4.0

Príznaky

Predpokladajme, že ste v reťazci pripojenia určili interval vyprázdnenia v maximálnom počte sekúnd pred vyprázdnením potvrdených transakcií na disk v Microsoft SQL Server Compact 4.0. V tomto prípade môže vyprázdnenie potvrdených transakcií na disk trvať oveľa dlhšie, než je interval vyprázdnenia, alebo sa vyprázdnenie na disk nemusí uskutočniť. Okrem toho dochádza k strate údajov v prípade neobvyklého ukončenia programu.

Riešenie

Rýchla oprava, ktorá rieši tento problém, je súčasťou balíka aktualizácie rýchlych opráv na požiadanie pre balík Service Pack 1 pre SQL Server Compact 4.0. 

Ďalšie informácie o tom, ako získať tento balík s aktualizáciou rýchlych opráv na požiadanie pre SQL Server Compact 4.0, získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2960153 Balík s aktualizáciou rýchlych opráv na požiadanie pre balík SQL Server Compact 4.0 Service Pack 1

Alternatívne riešenie

Ak chcete tento problém obísť, použite funkciu CommitMode.Immediate na okamžité vyprázdnenie zmien namiesto spoliehania sa na interval vyprázdnenia. Nasledujúci vzorový kód demonštruje túto metódu:conn. ConnectionString = "Zdroj údajov = c:\temp\Predaj.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 = "vložiť do tabuľky Objednávky hodnoty (" + Convert.ToString(a) + "najlepšie", "najlepšie", 200)"
            com. ExecuteNonQuery()
            a = a + 1
        End While
        tx. Commit(CommitMode.Immediate)

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.