Příznaky
Předpokládejme, že jste v připojovacím řetězci zadali interval vyprázdnění v maximálním počtu sekund před vyprázdněním transakcí na disk v Microsoft SQL serveru Compact 4,0. V této situaci může trvat delší dobu, než bude interval vyprázdnění vyprázdnit na disk nebo nemusí být vyprázdnit na disk. Ke ztrátě dat dojde navíc v případě abnormálního ukončení programu.
Řešení
Oprava hotfix, která tento problém řeší, je součástí balíčku aktualizace hotfix na vyžádání pro SQL Server Compact 4,0 Service Pack 1. Další informace o tom, jak získat tento balíček aktualizace na vyžádání hotfix pro SQL Server Compact 4,0, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2960153 Balíček aktualizace oprav hotfix pro SQL Server Compact 4,0 Service Pack 1
Alternativní řešení
Tento problém vyřešíte tak, že pomocí CommitMode. Immediate zapíšete změny okamžitě a nespoléháte na interval vyprázdnění. Tento postup ukazuje následující ukázkový kód: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)
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.