RecordSet 의 update 와 updatebatch 의 차이

ADO RecordSet 을 사용하면서 데이터를 추가 해줄때 updateupdatebatch 를 사용하는데, 정확히 이 두가지가 무엇을 의미하고 무엇이 다른지 알아봅시다.

update

설명

update 메소드는 레코드셋을 업데이트 하는 것입니다. 예를 들어 특정 쿼리로 불러온 레코드셋에 addnew 메소드를 이용하여 1개의 레코드를 추가하고 해당 내역을 레코드셋에 실제 업데이트 되도록 반영해주는 것이죠.

사용 예제

Dim RS as ADODB.RecordSet

With RS
    .addnew fields, values
    .update
End With

RS 라고 정의된 레코드셋 변수에 하나의 레코드를 추가(addnew) 해주고, 레코드셋에 해당 내역이 반영 되도록 업데이트(update) 해주는 것입니다.

updatebatch

설명

updatebatch 는 현재 사용하고 있는 레코드셋을 실제 DB에 반영시켜 주는 것입니다. 다시 말해 update 를 사용하여 레코드셋에 레코드를 등록하더라도 updatebatch 메소드를 이용하여 DB에 반영시켜 주지 않으면 해당 레코드는 레코드셋에만 머물고 DB에는 반영되지 않는 것입니다.

사용 예제

Dim RS as ADODB.RecordSet

With RS
    .addnew fields, values
    .update
    .updatebatch
End With

위 예와 같은 상황에서 updatebatch 메소드를 이용하여 실제 추가된 레코드를 DB에 반영 하도록 해주는 예제입니다. updatebatch 를 실행 하지 않으면 실제 DB에는 아무 의미가 없어요.

주의할 점

updatebatch 를 이용하여 DB에 레코드셋을 반영시켜주는 것은 비단 레코드 추가 뿐만이 아닙니다. 데이터를 삭제(delete) 할 때도 반드시 updatebatch 를 이용하여 실제 DB에 반영 해주어야 원하는 결과가 나올 수 있습니다.

참고 자료

w3schools.com – ADO Recordset Object