Ознаки
Припустимо, що ви вказали інтервал флеша в Максимальна кількість секунд у рядку підключення, перш ніж виконувати транзакції буде очищено на диску в Microsoft SQL Server compact 4,0. У цій ситуації транзакції, що здійснюються, можуть зайняти більше часу, ніж інтервал , який буде видалено з диска, або навіть не може бути видалено на диск. Крім того, втрати даних виникають, якщо не вдається виконати ненормальне завершення програми.
Спосіб вирішення
Виправлення, яке вирішує цю проблему, міститься в пакеті оновлень для незатребуване виправлення для SQL Server Compact 4,0 Service Pack 1. Докладні відомості про те, як отримати цей запит на оновлення пакета оновлень для SQL Server Compact 4,0, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
2960153 Пакет оновлень для SQL Server для компактних 4,0 Service Pack 1 (на вимогу)
Інші способи вирішення
Щоб вирішити цю проблему, скористайтеся функцією " комітет". негайно миттєво промивайте зміни, а не спираючись на інтервал флеша. Наведений нижче зразок коду демонструє цю методику: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)
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".