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;
...
'개발 > C&C++' 카테고리의 다른 글
[C/C++]Packet Parser 클래스(Similar. String...) (0) | 2022.10.21 |
---|---|
[Windows] Keyboard - key code & value (0) | 2021.11.08 |
[API] PROCESS 권한 확인 및 변경 - OpenProcessToken / LookupPrivilegeValue / AdjustTokenPrivileges (0) | 2017.03.14 |
[API] ShellExecute Function (0) | 2017.03.10 |
[TEMPLATE] VECTOR / MAP - RELEASE MEMORY (0) | 2017.03.09 |