증상
Microsoft SQL Server Compact 4.0에서 커밋된 트랜잭션을 디스크에 플러시하기 전에 연결 문자열에서 플러시 간격 을 최대 초로 지정한 것으로 가정 합니다. 이 상황에서 커밋된 트랜잭션은 디스크에 플러시 간격 보다 더 오래 걸릴 수 있으며 디스크에 플러시할 수도 없습니다. 또한 프로그램이 비정상적으로 종료 되는 경우 데이터 손실이 발생 합니다.
해결 방법
이 문제를 해결 하는 핫픽스는 SQL Server Compact 4.0 서비스 팩 1 용 주문형 핫픽스 업데이트 패키지에 포함 되어 있습니다. SQL Server Compact 4.0 용 주문형 핫픽스 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2960153 SQL Server Compact 4.0 서비스 팩 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는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.