الأعراض
افترض انك قمت بتحديد الفاصل الزمني لعمليه التدفق في الحد الأقصى لعدد الثواني في سلسله الاتصال قبل ان يتم مسح المعاملات الملتزم بها إلى القرص في Microsoft SQL server Compact 4.0. في هذه الحالة ، قد تستغرق المعاملات الملتزم بها وقتا أطول من الفاصل الزمني لعمليه التدفق المراد مسحها إلى القرص أو قد لا يتم مسحها إلى القرص. بالاضافه إلى ذلك ، يحدث فقدان البيانات في حاله وجود برنامج غير طبيعي.
الحل
يتم تضمين الإصلاح العاجل الذي يحل هذه المشكلة في حزمه تحديثات الإصلاح العاجل عند الطلب ل SQL Server Service Pack 1 ال4.0 مضغوطه. للحصول علي مزيد من المعلومات حول كيفيه الحصول علي حزمه تحديث الإصلاح العاجل عند الطلب ل SQL Server المضغوط 4.0 ، انقر فوق رقم المقالة التالية لعرض المقالة في قاعده معارف Microsoft:
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 أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".