תופעות
נניח שציינת את מרווח הזמן לריקון במספר השניות המרבי במחרוזת החיבור לפני שתתבצע ריקון של הטרנזקציות שחויבו לדיסק ב-Microsoft SQL Server Compact 4.0. במצב זה, הטרנזקציות המחויבות עשויות להימשך זמן רב יותר ממרווח הזמן שירוקן לדיסק, או אפילו לא להוריד אותו לדיסק. בנוסף, אובדן נתונים מתרחש אם קיימת סיום של תוכנית חריגה.
פתרון
התיקון החם הפותר בעיה זו כלול בחבילת עדכון hotfix לפי דרישה עבור SQL Server Compact 4.0 Service Pack 1. לקבלת מידע נוסף אודות אופן ההשגה של חבילת עדכון התיקונים החמים הדרושים עבור SQL Server Compact 4.0, לחץ על מספר המאמר הבא כדי להציג את המאמר מתוך Microsoft Knowledge Base:
2960153 חבילת עדכון hotfix לפי דרישה עבור SQL Server Compact 4.0 Service Pack 1
פתרון
כדי לעקוף בעיה זו, השתמש ב -CommitMode. מיידי כדי לרוקן את השינויים באופן מיידי במקום להסתמך על מרווח הזמן לריקון. הקוד המדגם הבא ממחיש טכניקה זו: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 המופיעים בסעיף "חל על".