อาการ
สมมติว่าคุณระบุช่วงการ ล้าง ในจำนวนวินาทีสูงสุดในสตริงการเชื่อมต่อก่อนที่ธุรกรรมที่กำหนดให้ถูกล้างข้อมูลลงในดิสก์ใน Microsoft SQL Server Compact ๔.๐ ในสถานการณ์นี้ธุรกรรมที่ได้รับมอบหมายอาจใช้เวลานานมากเกินกว่าช่วงการล้างที่จะล้างลงในดิสก์หรืออาจไม่สามารถล้างลงในดิสก์ได้ นอกจากนี้การสูญหายของข้อมูลจะเกิดขึ้นถ้ามีการเลิกใช้โปรแกรมที่ผิดปกติ
การแก้ไข
โปรแกรมแก้ไขด่วนที่แก้ไขปัญหานี้จะรวมอยู่ในแพคเกจการอัปเดตของโปรแกรมแก้ไขด่วนตามความต้องการสำหรับ SQL Server Compact ๔.๐ Service Pack 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจการอัปเดตของโปรแกรมแก้ไขด่วนนี้ตามความต้องการสำหรับ SQL Server Compact ๔.๐ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๙๖๐๑๕๓ แพคเกจการอัปเดตของโปรแกรมแก้ไขด่วนตามความต้องการสำหรับ SQL Server Compact ๔.๐ 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 ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"