Sümptomid
Oletagem, et olete määranud masti intervalli maksimaalsel arvul sekundites ühendusstringi ees, enne kui sooritatud tehingud on Microsoft SQL Server Compact 4,0 kettale tühjendatud. Selles olukorras võivad sooritatud tehingud võtta palju kauem aega kui masti intervalli tühjendada kettale või ei pruugita isegi tühjendada kettale. Lisaks esineb andmete kaotsimineku korral ebanormaalne programmi lõpetamine.
Lahendus
Käigultparandus, mis lahendab selle probleemi, kaasatakse SQL Server Compact 4,0 hoolduspaketi 1 nõudmisel kiirparanduse värskenduspakett. Lisateavet selle kohta, kuidas hankida SQL Server Compact 4,0 selle nõudmisel kiirparanduse värskenduspakett, klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
2960153 Nõudmisel kiirparanduse värskenduspaketi SQL Server Compact 4,0 Service Pack 1
Lahendus
Selle probleemi lahendamiseks kasutage CommitMode. kohe, et loputada muutusi masti intervalliasemel kohe. Järgmine proovi kood näitab seda tehnikat.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)
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.