Συμπτώματα
Ας υποθέσουμε ότι έχετε καθορίσει το διάστημα εκκαθάρισης στο μέγιστο αριθμό των δευτερολέπτων στη συμβολοσειρά σύνδεσης πριν οι ολοκληρωμένες συναλλαγές εκκαθαριστούν στο δίσκο στον 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. άμεση για να εκπλύνετε αμέσως τις αλλαγές, αντί να βασιστείτε στο διάστημα εκκαθάρισης. Το παρακάτω δείγμα κώδικα παρουσιάζει αυτή την τεχνική: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 που παρατίθενται στην ενότητα "ισχύει για".