다음을 통해 공유


AddNew 메서드(ADO)

변경 가능한 Recordset 개체에 대한 새 레코드를 만듭니다.

구문

  
recordset.AddNew FieldList, Values  

매개 변수

레코드 집합
Recordset 개체.

FieldList
(선택 사항) 단일 이름 또는 새 레코드에 있는 필드의 이름 또는 서수 위치 배열입니다.


(선택 사항) 단일 값 또는 새 레코드의 필드에 대한 값 배열입니다. Fieldlist가 배열인 경우 도 멤버 수가 동일한 배열이어야 합니다. 그렇지 않으면 오류가 발생합니다. 필드 이름의 순서는 각 배열의 필드 값 순서와 일치해야 합니다.

설명

AddNew 메서드를 사용하여 새 레코드를 만들고 초기화합니다. adAddNew(CursorOptionEnum 값)와 함께 Supports 메서드를 사용하여 현재 Recordset 개체에 레코드를 추가할 수 있는지 확인합니다.

AddNew 메서드를 호출하면 새 레코드가 현재 레코드가 되고 Update 메서드를 호출한 후에도 현재 상태를 유지합니다. 새 레코드가 레코드 집합에 추가되므로 업데이트 후 MoveNext에 대한 호출이 레코드 집합의 끝을 지나 이동하여 EOF True가 됩니다. Recordset 개체가 책갈피를 지원하지 않는 경우 다른 레코드로 이동하면 새 레코드에 액세스하지 못할 수 있습니다. 커서 유형에 따라 Requery 메서드를 호출하여 새 레코드에 액세스할 수 있도록 해야 할 수 있습니다.

현재 레코드를 편집하거나 새 레코드를 추가하는 동안 AddNew를 호출하는 경우 ADO는 Update 메서드를 호출하여 변경 내용을 저장한 다음, 새 레코드를 만듭니다.

AddNew 메서드의 동작은 Recordset 개체의 업데이트 모드와 FieldlistValues 인수를 전달하는지 여부에 따라 달라집니다.

즉시 업데이트 모드(Update 메서드를 호출하면 공급자가 기본 데이터 원본에 변경 내용을 기록함)에서 인수 없이 AddNew 메서드를 호출하면 EditMode 속성이 adEditAdd(EditModeEnum 값)로 설정됩니다. 공급자는 모든 필드 값 변경 내용을 로컬로 캐시합니다. Update 메서드를 호출하면 새 레코드가 데이터베이스에 게시되고 EditMode 속성이 adEditNone(EditModeEnum 값)으로 다시 설정됩니다. FieldlistValues 인수를 전달하는 경우 ADO는 데이터베이스에 새 레코드를 즉시 게시합니다(업데이트 호출이 필요하지 않음). EditMode 속성 값은 변경되지 않습니다(adEditNone).

일괄 업데이트 모드(공급자가 여러 변경 내용을 캐시하고 UpdateBatch 메서드를 호출할 때만 기본 데이터 원본에 쓰는 경우)에서 인수 없이 AddNew 메서드를 호출하면 EditMode 속성이 adEditAdd로 설정됩니다. 공급자는 모든 필드 값 변경 내용을 로컬로 캐시합니다. Update 메서드를 호출하면 현재 레코드 집합에 새 레코드가 추가되지만 공급자는 UpdateBatch 메서드를 호출할 때까지 변경 내용을 기본 데이터베이스에 게시하거나 EditModeadEditNone으로 다시 설정하지 않습니다. FieldlistValues 인수를 전달하는 경우 ADO는 캐시의 스토리지를 위해 공급자에게 새 레코드를 보내고 EditModeadEditAdd로 설정합니다. 새 레코드를 기본 데이터베이스에 게시하려면 UpdateBatch 메서드를 호출해야 합니다.

다음 예제에서는 필드 목록과 값 목록이 포함된 AddNew 메서드를 사용하여 필드 목록과 값 목록을 배열로 포함하는 방법을 보여 줍니다.

create table aa1 (intf int, charf char(10))  
insert into aa1 values (2, 'aa')  
  
Dim cn As New adodb.Connection  
Dim rs As New adodb.Recordset  
Dim cmd As New adodb.Command  
  
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=<password>;"  
  
cn.Open  
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic  
  
Dim fieldsArray(1) As Variant  
fieldsArray(0) = "intf"  
fieldsArray(1) = "charf"  
Dim values(1) As Variant  
values(0) = 4  
values(1) = "as"  
rs.AddNew fieldsArray, values  
rs.Update  

적용 대상

레코드 집합 개체(ADO)

참고 항목

AddNew 메서드 예제(VB)
AddNew 메서드 예제(VBScript)
AddNew 메서드 예제(VC++)
CancelUpdate 메서드(ADO)
EditMode 속성
Requery 메서드
Supports 메서드
Update 메서드
UpdateBatch 메서드