컴퓨터 공부/MFC 프로그래밍

[5월 26일 2교시] ODBC 2 + DLL 1

려리군 2009. 5. 26. 10:43

ODBC 실습

#error Security Issue: The connection string may contain a password

윗부분은 주석처리


void CODBCExView::DoDataExchange(CDataExchange* pDX)

{

CRecordView::DoDataExchange(pDX);

//...

DDX_FieldText(pDX, IDC_NAME, m_pSet->m_name, m_pSet);

DDX_FieldText(pDX, IDC_GRADE, m_pSet->m_grade, m_pSet);

}

CStringW -> CString으로 바꾼다.


virtual void CRecordset::Delete();

참고주소 : http://msdn.microsoft.com/ko-kr/library/zexz0wfs(VS.80).aspx

현재 레코드를 지운다.

성공적으로 삭제한 후 레코드 셋의 필드 데이터 멤버는 NULL이 되며 명시적으로 지워진 레코드를 떠나기 위해 Move함수를 명시적으로 호출하여야 한다. 지워진 레코드를 떠날 때 다시 지워진 것으로 돌아올 수 없기 때문이다. 데이터 소스가 트랜잭션을 지원하면 트랜잭션의 Delete 호출 부분을 만들 수 있다.

Exception : CDBException이 발생할 수 있다.


BOOL CRecordset::IsEOF() const;

참고주소 : http://msdn.microsoft.com/ko-kr/library/3k352t3y(VS.80).aspx

마지막 레코드 다음에 레코드 셋이 위치했는지 확인한다.

리턴 : 마지막 레코드를 넘어 갔거나 레코드 셋에 레코드가 없다면 TRUE, 아니면 FALSE


void CRecordset::MoveNext();

참고주소 : http://msdn.microsoft.com/ko-kr/library/z9t2b0y9(VS.80).aspx

다음 rowset에서 첫번째 레코드를 현재 레코드로 만든다.


void CRecordset::MoveLast();

참고주소 : http://msdn.microsoft.com/ko-kr/library/ftwy3737(VS.80).aspx

다음 rowset에서 첫번째 레코드를 현재 레코드로 만든다.


BOOL CRecordset::IsBOF() const;

참고주소 : http://msdn.microsoft.com/ko-kr/library/b1zh2ykb(VS.80).aspx

첫번째 레코드 앞에 레코드 셋이 위치했는지 확인한다.

리턴 : 첫번째 레코드 앞으로 넘어갔거나 레코드 셋에 레코드다 없다면 TRUE, 아니면 FALSE


void CRecordset::MoveFirst();

참고주소 : http://msdn.microsoft.com/ko-kr/library/adf9h1y0(VS.80).aspx

첫번째 rowset에서 처음 레코드를 현재 레코드로 만든다.


void CRecordset::SetFieldNull(void* pv, BOOL bNull = TRUE);

참고주소 : http://msdn.microsoft.com/ko-kr/library/hd606c40(VS.80).aspx

NULL이나 NULL이 아닌 값으로 레코드 셋의 필드 데이터 멤버를 설정한다.

pv : 레코드 셋에서 필드 데이터 멤버의 주소를 포함하거나 NULL값을 갖는다.

만약 NULL이면 레코드셋의 모든 필드 데이터는 설정된다.

(C++ NULL과 "값이 없다는" 뜻의 데이터 베이스 용어의 Null은 다르다.)

bNull : TRUE면 필드 데이터 멤버는 값이 없다는 뜻으로 Null이 되며 FALSE면 Null이 되지 않는다.


DLL

exe에 메모리 상에서 dll이 포함되기 때문에 inprocess라고 부른다.

dll이 죽으면 프로그램(exe)도 죽을 수 있다.

장점

메모리 절약

프로그램 성능 향상이 편이 : 해당 DLL만 교체

리소스 교체

혼합 프로그래밍 가능


일반 DLL : 윈도우즈 표준 DLL, 다른 언어나 개발 툴에서 사용 가능.

확장 DLL : MFC 전용 DLL.


export : DLL에서 제공하는 함수 정보 공개

import : DLL을 사용하는 프로그램에서 어떤 함수를 사용하겠다고 선언

Extern "C" : C형식의 함수임을 선언