본문 바로가기

개발/C&C++

[MFC] CDaoFieldInfo / Column or Field 의 DataType

728x90
반응형

1. CDaoFieldInfo 구조체

 

CDaoDatabase Class 를 사용하여 Column 의 DataType 을 확인하기 위해 사용.

 

 

1) 구조체 구조

 

struct CDaoFieldInfo

{

// Field 개체의 고유 이름

CString m_strName;  

              

// Field의 데이터 형식 

short m_nType;     

 

// DAO Field 개체의 최대 크기(Byte 단위)

long m_lSize;                         

 

// Field 개체의 특성

long m_lAttributes;

 

// 다른 Field를 기준으로 표시되는 순서

short m_nOrdinalPosition;

 

// NULL 이 아닌 값을 넣어야 하는지에 대한 여부

BOOL m_bRequired;

 

// 빈 문자열이 유효한지에 대한 여부

BOOL m_bAllowZeroLength;

 

// 텍스트 정렬 순서

long m_lCollatingOrder;

 

// 외래 테이블의 DAO Field 개체의 이름 지정

CString m_strForeignName;

 

// DAO Field 개체에 대한 데이터 필드의 이름

CString m_strSourceField;

 

// DAO Field 개체의 대한 테이블의 이름

CString m_strSourceTable;

 

// 추가되거나 변경되는 Field 데이터의 유효성 검사

CString m_strValidationRule;

 

// 유효성 검사 규칙을 충족하지 않을 경우 출력될 메세지

CString m_strValidationText;

 

// DAO Field 개체의 기본값

CString m_strDefaultValue;

}

 

 

2) DataType 종류

 

- dbBoolean : TRUE/FALSE

- dbByte : 바이트

- dbInteger : 정수(2 Byte)

- dbLong : 정수(4 Byte)

- dbCurrency : 통화

- dbSingle : 단일

- dbDouble : Double

- dbDate : 날짜/시간

- dbText : 텍스트 or CString

- dbLongBinary : 이진수

- dbMemo : 메모 or CString

- dbGUID : 고유식별자

 

 

 

2. Column or Field 의 DataType

 

Product Table 의 COST Field(Column) 의 DataType 을 확인.

 

ex)

...

CDaoDatabase db;

CString strPW;
strPW.Format(_T("%s%s"), strPassword != NULL ? ";PWD=" : "", strPassword != NULL ? strPassword : "");

db.Open(strPath, FALSE, FALSE, strPW);

if (!db.IsOpen())

return FALSE;


CDaoRecordSet rs(&db);

CString strQuery("SELECT * FROM Product");

rs.Open(AFX_DAO_USE_DEFAULT_TYPE, strQuery);

if (!rs.IsOpen())

return FALSE;

 

CDaoFieldInfo stFieldInfo;

rs.GetFieldInfo("COST", FieldInfo);

if (FieldInfo.m_nType == dbInteger)

return TRUE;

 

...


728x90