2014-05-12 2 views
0

현재 Visual Studio 2008의 C# WinForms로 코딩 중이며 SQL 데이터베이스 연결을 구현 중일 수 있습니다. 그러나 산업 작업을 위해서는 매우 견고해야하며, 이는 서면 프로세스 중 정전의 가능성을 의미합니다.SQL 데이터베이스에 쓰기 전에 '중간 사람'종류의 파일에 쓰기

나는 app과 SQL 사이에 파일을 만들려고했다. 프로그램은 먼저 FALSE로 설정된 파일의 SAFE 플래그를 반전시킨 다음 그것에 기록합니다. 해당 파일에 안전하게 쓰여지면 SAFE 플래그를 TRUE로 바꾼 다음 SQL 데이터베이스에 씁니다. 그러한 일이 가능합니까/정전이 자주 발생하는 환경에서 가장 좋은 조치입니까?

+0

방법 데이터 베이스? – RvdK

+4

SQL 데이터베이스의 내장 트랜잭션을 단순히 사용하여 스테이징 파일을 사용하면 어떤 이점이 있습니까? –

+5

거래에서 왜 그렇게하지 않습니까? 실패하면 아무것도 커밋되지 않습니까? – Yahya

답변

5

트랜잭션을 구현하는 것이 좋습니다.

전원이 꺼지면 시스템이 다시 온라인 상태가되었을 때 정보를 다시 쓰려고 잡으려고 트랜잭션을 설정할 수 있습니다.

0

나는 트랜잭션 내에서 SQL 쓰기 (begin ... commit)가 단일 개발자로 구현할 수있는 것보다 훨씬 강력하다고 생각한다. 서버에서 데이터가 기록되었다고 확신 할 수 있다면 그 데이터가 있는지 확인할 수 있습니다. 그렇다면 다시 시도해야한다는 것을 알고 있습니다.

0

데이터베이스에 쓸 때 메시지 큐를 포함한 다양한 기술을 사용하여 대상에 메시지가 배달되도록하고 트랜잭션 처리를 통해 전체 저장이 완료되거나 중단되도록 할 수 있습니다. SQL Server를 사용하는 경우 트랜잭션 로그에 데이터베이스에 저장되지 않은 트랜잭션도 관리하여 중단 후 복구 문제를 해결합니다.

메시지 큐 : Microsoft Message Queue

트랜잭션 처리 : Transaction Fundamentals

트랜잭션 로그 : 당신은 그러므로 기술의 몇 볼 필요가 쓰기 중에 전원 배출구로부터이있을 때 약 SQL Server Transaction Logs

+1

물론 서버용 배터리 백업을 구입하십시오. – HLGEM