CRecordset 함수와 데이터 삽입과 삭제 검색 예제

2006. 11. 8. 23:54

CRecordset :: MoveFirst() -데이터베이스의 맨 처음 레코드로 이동
CRecordset :: MoveLast() -데이터베이스의 맨 마지막 레코드로 이동
CRecordset :: MoveNext() –데이터베이스의 다음 레코드로 이동
CRecordset :: MovePrev() –데이터베이스의 이전 래코드로 이동

CRecordset :: IsBOF() –데이터베이스의 처음인가를 알고자 할때
CRecordset :: IsEOF() –데이터베이스의 마지막인가를 알고자 할때

CRecordset :: AddNew() –데이터베이스에 새로운 레코드를 설정할 때
CRecordset :: Delete() –현재 설정된 레코드를 살제할 때
CRecordset :: Edit() –현재 레코드를 수정할 수 있는 상태로 놓을 때
CRecordset :: Open() –데이터베이스를 연다.
CRecordset :: Close() –데이터베이스를 닫는다.

CRecordset :: m_strFilter – SQL문을 이용한 필터 만들기
CRecordset :: m_strSort –데이터 레코드를 특정 방식으로 sorting
CRecordset :: Update –현재 레코드를 데이터베이스에 업데이트한다

위의 SQL문장들은 m_pSet->Close()를 실행시킨 다음에 문장을
  설정하고  m_pSet->Open()으로 개방해 주어야 한다.
  (또는 m_pSet->Requery() )
  만약 닫지 않고 위의 문장을 설정하면 치명적 에러를 리턴하면서 프로그램 종료된다.


* 레코드 삽입 삭제 예제

void CDAOview::OnRecordAdd
{
  m_pSet->MoveLast();
  m_pSet->AddNew();
  UpdateData(TRUE);
  m_pSet->Update();
  m_pSet->MoveLast();
}

void CDAView::OnRecordDataDelete()
{
  m_pSet->Delete();
  m_pSet->MoveNext();
  if(m_pSet->IsEOF())
  {
     m_pSet->MoveLast();
  }
  UpdateData(TRUE);
}


* 레코드 검색

  m_pSet->Close();
  m_pSet->m_strFilter= 검색식;     //SQL의 where문
  m_pSet->Open();


(예) m_pSet->m_strFilter.Format (“Name = '%s' and  Age = %d",
                                               rhs2, rhs );

  만약 검색식을 취소하고 모든 레코드를 다 검색하고자 한다면
  m_strFilter에 “ “, 즉 널 스트링을 대입해 주면 된다.

밥짓는아이 테크노트/기타