KB2979868 - 修复:刷新 SQL Server Compact 4.0 中提交的事务所需的时间比刷新间隔长

应用对象
SQL Server Compact 4.0

症状

假设在 Microsoft SQL Server Compact 4.0 中将提交的事务刷新到磁盘之前,已以连接字符串的最大秒数指定刷新间隔。 在这种情况下,提交的事务可能需要比刷新间隔更长的时间才能刷新到磁盘,甚至可能不会刷新到磁盘。 此外,如果存在异常程序终止,则会发生数据丢失。

解决方法

解决此问题的修补程序包含在 SQL Server Compact 4.0 Service Pack 1 的按需修补程序更新包中。 

有关如何获取适用于 SQL Server Compact 4.0 的此按需修补程序更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2960153 SQL Server Compact 4.0 Service Pack 1 的按需修补程序更新包

解决方法

若要解决此问题,请使用 CommitMode.Immediate 立即刷新更改,而不是依赖于刷新间隔。 以下示例代码演示了此方法:conn。ConnectionString = “Data Source = c:\temp\SalesData.sdf; ”
        控制室。打开 ()
        Dim tx As SqlCeTransaction
        tx = conn。BeginTransaction (System.Data.IsolationLevel.ReadCommitted)
        com = conn。CreateCommand ()
        Com。Transaction = tx
        将 A 作为整数进行调暗
        a = 101
        (a <= 1000)
            Com。CommandText = “insert into Orders values (” + Convert.ToString (a) + “, 'best', 200) ”
            Com。ExecuteNonQuery ()
            a = a + 1
        结束时间
        Tx。提交 (CommitMode.Immediate)

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。