.NET Managed Provider에서 트랜잭션 mode를 설정할 필요가 있을 때에는 다음과 같은 형태로 사용할 수 있다.
CacheTransaction Trans = CacheConnect.BeginTransaction(
);
Trans.Commit(); 혹은 Trans.Rollback();
다음은 트랜잭션을 사용하여 SSN(주민번호)의 유일성 오류시 트랜잭션을 rollback 하는 예제입니다. 참고로, C# 예제입니다.
CacheTransaction Trans =
CacheConnect.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
try {
string SQLtext = "INSERT into Sample.Person(Name, SSN) Values(?,?)";
CacheCommand Command = new CacheCommand(SQLtext, CacheConnect, Trans);
CacheParameter Name_param = new CacheParameter("name", CacheDbType.NVarChar);
Name_param.Value = "Rowe, Richard";
Command.Parameters.Add(Name_param);
CacheParameter SSN_param = new CacheParameter("ssn", CacheDbType.NVarChar);
SSN_param.Value = "070625-3081454";
Command.Parameters.Add(SSN_param);
int rows = Command.ExecuteNonQuery();
Trans.Commit();
Display.WriteLine("Added record for " + SSN_param.Value.ToString());
}
catch (Exception eInsert) {
Trans.Rollback();
WriteErrorMessage("TransFail", eInsert);
}
**트랜잭션 모드 설명
System.Data.IsolationLevel 에는 다음과 같은 모드 등이 있습니다.
ReadCommitted |
Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data. |
ReadUncommitted |
A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored. |
보다 자세한 내용은 MSDN 사이트 참조:
http://msdn2.microsoft.com/en-us/library/system.data.isolationlevel.aspx
|