다음을 통해 공유


CDaoTableDef 클래스

기본 테이블 또는 연결된 테이블의 저장된 정의를 나타냅니다.

참고 항목

DAO는 Office 2013까지 지원됩니다. DAO 3.6은 최종 버전이며 사용되지 않는 것으로 간주됩니다.

구문

class CDaoTableDef : public CObject

멤버

공용 생성자

속성 설명
CDaoTableDef::CDaoTableDef CDaoTableDef 개체를 생성합니다.

공용 메서드

이름 설명
CDaoTableDef::Append 데이터베이스에 새 테이블을 추가합니다.
CDaoTableDef::CanUpdate 테이블을 업데이트할 수 있으면 0이 아닌 값을 반환합니다(필드 또는 테이블 속성의 정의를 수정할 수 있습니다).
CDaoTableDef::Close 열려 있는 tabledef를 닫습니다.
CDaoTableDef::Create 추가를 사용하여 데이터베이스에 추가할 수 있는 테이블을 만듭니다.
CDaoTableDef::CreateField 테이블에 대한 필드를 만들기 위해 호출됩니다.
CDaoTableDef::CreateIndex 테이블에 대한 인덱스 만들기 위해 호출됩니다.
CDaoTableDef::D eleteField 테이블에서 필드를 삭제하기 위해 호출됩니다.
CDaoTableDef::D eleteIndex 테이블에서 인덱스 삭제를 위해 호출됩니다.
CDaoTableDef::GetAttributes 개체의 하나 이상의 특성을 나타내는 값을 반환합니다 CDaoTableDef .
CDaoTableDef::GetConnect 테이블의 원본에 대한 정보를 제공하는 값을 반환합니다.
CDaoTableDef::GetDateCreated 개체의 기본 CDaoTableDef 테이블이 만들어진 날짜와 시간을 반환합니다.
CDaoTableDef::GetDateLastUpdated 기본 테이블 디자인에 대한 가장 최근 변경 내용의 날짜와 시간을 반환합니다.
CDaoTableDef::GetFieldCount 테이블의 필드 수를 나타내는 값을 반환합니다.
CDaoTableDef::GetFieldInfo 테이블의 필드에 대한 특정 종류의 정보를 반환합니다.
CDaoTableDef::GetIndexCount 테이블의 인덱스 수를 반환합니다.
CDaoTableDef::GetIndexInfo 테이블의 인덱스에 대한 특정 종류의 정보를 반환합니다.
CDaoTableDef::GetName 테이블의 사용자 정의 이름을 반환합니다.
CDaoTableDef::GetRecordCount 테이블의 레코드 수를 반환합니다.
CDaoTableDef::GetSourceTableName 원본 데이터베이스에서 연결된 테이블의 이름을 지정하는 값을 반환합니다.
CDaoTableDef::GetValidationRule 테이블이 변경되거나 테이블에 추가될 때 필드의 데이터의 유효성을 검사하는 값을 반환합니다.
CDaoTableDef::GetValidationText Field 개체의 값이 지정된 유효성 검사 규칙을 충족하지 않는 경우 애플리케이션에서 표시하는 메시지의 텍스트를 지정하는 값을 반환합니다.
CDaoTableDef::IsOpen 테이블이 열려 있으면 0이 아닌 값을 반환합니다.
CDaoTableDef::Open 데이터베이스의 TableDef 컬렉션에 저장된 기존 tabledef를 엽니다.
CDaoTableDef::RefreshLink 연결된 테이블에 대한 연결 정보를 업데이트합니다.
CDaoTableDef::SetAttributes 개체의 하나 이상의 특성을 CDaoTableDef 나타내는 값을 설정합니다.
CDaoTableDef::SetConnect 테이블의 원본에 대한 정보를 제공하는 값을 설정합니다.
CDaoTableDef::SetName 테이블의 이름을 설정합니다.
CDaoTableDef::SetSourceTableName 원본 데이터베이스에서 연결된 테이블의 이름을 지정하는 값을 설정합니다.
CDaoTableDef::SetValidationRule 필드가 변경되거나 테이블에 추가될 때 필드의 데이터의 유효성을 검사하는 값을 설정합니다.
CDaoTableDef::SetValidationText Field 개체의 값이 지정된 유효성 검사 규칙을 충족하지 않는 경우 애플리케이션에서 표시하는 메시지의 텍스트를 지정하는 값을 설정합니다.

공용 데이터 멤버

속성 설명
CDaoTableDef::m_pDAOTableDef tabledef 개체의 기본 DAO 인터페이스에 대한 포인터입니다.
CDaoTableDef::m_pDatabase 이 테이블의 원본 데이터베이스입니다.

설명

각 DAO 데이터베이스 개체는 저장된 모든 DAO tabledef 개체를 포함하는 TableDefs라는 컬렉션을 유지 관리합니다.

개체를 사용하여 테이블 정의를 조작합니다 CDaoTableDef . 이렇게 시작할 수 있는 작업의 예는 다음과 같습니다.

  • 데이터베이스의 로컬, 연결된 테이블 또는 외부 테이블의 필드 및 인덱스 구조를 검사합니다.

  • SetConnect 연결된 테이블에 대한 멤버 함수 및 SetSourceTableName 멤버 함수를 호출하고 멤버 함수를 RefreshLink 사용하여 연결된 테이블에 대한 연결을 업데이트합니다.

  • 멤버 함수를 CanUpdate 호출하여 테이블에서 필드 정의를 편집할 수 있는지 확인합니다.

  • 및 , 및 SetValidationRuleGetValidationText SetValidationText 멤버 함수를 GetValidationRule 사용하여 유효성 검사 조건을 얻거나 설정합니다.

  • 멤버 함수를 Open 사용하여 테이블, 다이나셋 또는 스냅샷 형식 CDaoRecordset 개체를 만듭니다.

    참고 항목

    DAO 데이터베이스 클래스는 ODBC(Open Database Connectivity)를 기반으로 하는 MFC 데이터베이스 클래스와 다릅니다. 모든 DAO 데이터베이스 클래스 이름에는 "CDao" 접두사가 있습니다. DAO 클래스를 사용하여 ODBC 데이터 원본에 계속 액세스할 수 있습니다. DAO 클래스는 일반적으로 Microsoft Jet 데이터베이스 엔진과 관련되어 있으므로 뛰어난 기능을 제공합니다.

tabledef 개체를 사용하여 기존 테이블을 사용하거나 새 테이블을 만들려면

  1. 모든 경우에 먼저 개체를 CDaoTableDef 생성하여 테이블이 속한 CDaoDatabase 개체에 대한 포인터를 제공합니다.

  2. 그런 다음 원하는 항목에 따라 다음을 수행합니다.

    • 기존 저장된 테이블을 사용하려면 tabledef 개체의 Open 멤버 함수를 호출하여 저장된 테이블의 이름을 제공합니다.

    • 새 테이블을 만들려면 tabledef 개체의 멤버 만들기 함수를 호출하여 테이블의 이름을 제공합니다. CreateFieldCreateIndex를 호출하여 테이블에 필드와 인덱스를 추가합니다.

    • 추가를 호출하여 테이블을 데이터베이스의 TableDefs 컬렉션에 추가하여 저장합니다. Create 는 tabledef를 열린 상태로 전환하므로 호출한 후에는 호출 Create Open하지 않습니다.

      저장된 테이블을 만드는 가장 쉬운 방법은 Microsoft Access를 사용하여 테이블을 만들고 데이터베이스에 저장하는 것입니다. 그런 다음 MFC 코드에서 열고 사용할 수 있습니다.

열거나 만든 tabledef 개체를 사용하려면 nOpenType 매개 변수의 값을 사용하여 tabledef dbOpenTable 의 이름을 지정하여 개체를 만들고 엽니다CDaoRecordset.

tabledef 개체를 사용하여 개체를 만들 CDaoRecordset 려면 일반적으로 위에서 설명한 대로 tabledef를 만들거나 연 다음 레코드 집합 개체를 생성하여 CDaoRecordset::Open을 호출할 때 tabledef 개체에 대한 포인터를 전달합니다. 전달하는 tabledef는 열려 있는 상태여야 합니다. 자세한 내용은 CDaoRecordset 클래스 를 참조하세요.

tabledef 개체 사용을 마치면 Close 멤버 함수를 호출한 다음 tabledef 개체를 삭제합니다.

상속 계층 구조

CObject

CDaoTableDef

요구 사항

머리글: afxdao.h

CDaoTableDef::Append

Create를 호출한 후 이 멤버 함수를 호출하여 데이터베이스에 tabledef를 저장할 새 tabledef 개체를 만듭니다.

virtual void Append();

설명

이 함수는 데이터베이스의 TableDefs 컬렉션에 개체를 추가합니다. tabledef를 추가하지 않고 정의하는 동안 임시 개체로 사용할 수 있지만 저장하고 사용하려면 호출 Append해야 합니다.

참고 항목

이름 없는 tabledef(null 또는 빈 문자열 포함)를 추가하려고 하면 MFC가 예외를 throw합니다.

관련 정보는 DAO 도움말의 "추가 메서드" 항목을 참조하세요.

CDaoTableDef::CanUpdate

개체의 기본 테이블 정의를 변경할 수 있는지 여부를 확인하려면 이 멤버 함수를 CDaoTableDef 호출합니다.

BOOL CanUpdate();

Return Value

테이블 구조(스키마)를 수정(필드 및 인덱스 추가 또는 삭제)할 수 있으면 0이 아니고, 그렇지 않으면 0입니다.

설명

기본적으로 개체의 기본 CDaoTableDef 으로 새로 만든 테이블을 업데이트할 수 있으며 개체의 기본 CDaoTableDef 으로 연결된 테이블을 업데이트할 수 없습니다. CDaoTableDef 결과 레코드 집합을 업데이트할 수 없는 경우에도 개체를 업데이트할 수 있습니다.

관련 정보는 DAO 도움말의 "Updatable 속성" 항목을 참조하세요.

CDaoTableDef::CDaoTableDef

CDaoTableDef 개체를 생성합니다.

CDaoTableDef(CDaoDatabase* pDatabase);

매개 변수

pDatabase
CDaoDatabase 개체에 대한 포인터입니다.

설명

개체를 생성한 후 Create 또는 Open 멤버 함수를 호출해야 합니다. 개체를 완료하면 Close 멤버 함수를 호출하고 개체를 CDaoTableDef 삭제해야 합니다.

CDaoTableDef::Close

이 멤버 함수를 호출하여 tabledef 개체를 닫고 해제합니다.

virtual void Close();

설명

일반적으로 호출 Close한 후에는 tabledef 개체가 할당된 new경우 삭제합니다.

를 호출한 후 Open을 다시 호출Close할 수 있습니다. 이렇게 하면 tabledef 개체를 다시 사용할 수 있습니다.

관련 정보는 DAO 도움말의 "Close 메서드" 항목을 참조하세요.

CDaoTableDef::Create

이 멤버 함수를 호출하여 저장된 새 테이블을 만듭니다.

virtual void Create(
    LPCTSTR lpszName,
    long lAttributes = 0,
    LPCTSTR lpszSrcTable = NULL,
    LPCTSTR lpszConnect = NULL);

매개 변수

lpszName
테이블 이름을 포함하는 문자열에 대한 포인터입니다.

lAttributes
tabledef 개체가 나타내는 테이블의 특성에 해당하는 값입니다. 비트 OR를 사용하여 다음 상수 중 어느 것을 결합할 수 있습니다.

상수 설명
dbAttachExclusive Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 테이블이 단독 용도로 열려 있는 연결된 테이블임을 나타냅니다.
dbAttachSavePWD Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 연결된 테이블의 사용자 ID 및 암호가 연결 정보와 함께 저장됨을 나타냅니다.
dbSystemObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 시스템 테이블임을 나타냅니다.
dbHiddenObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 숨겨진 테이블임을 나타냅니다.

lpszSrcTable
원본 테이블 이름을 포함하는 문자열에 대한 포인터입니다. 기본적으로 이 값은 NULL로 초기화됩니다.

lpszConnect
기본 연결 문자열 포함하는 문자열에 대한 포인터입니다. 기본적으로 이 값은 NULL로 초기화됩니다.

설명

tabledef의 이름을 지정한 후 Append를 호출하여 데이터베이스의 TableDefs 컬렉션에 tabledef를 저장할 수 있습니다. 호출Append한 후 tabledef는 열린 상태에 있으며 이를 사용하여 CDaoRecordset 개체를 만들 수 있습니다.

관련 정보는 DAO 도움말의 "CreateTableDef 메서드" 항목을 참조하세요.

CDaoTableDef::CreateField

이 멤버 함수를 호출하여 테이블에 필드를 추가합니다.

void CreateField(
    LPCTSTR lpszName,
    short nType,
    long lSize,
    long lAttributes = 0);

void CreateField(CDaoFieldInfo& fieldinfo);

매개 변수

lpszName
이 필드의 이름을 지정하는 문자열 식에 대한 포인터입니다.

nType
필드의 데이터 형식을 나타내는 값입니다. 설정은 다음 값 중 하나일 수 있습니다.

Type 크기(바이트) 설명
dbBoolean 1바이트 BOOL
dbByte BYTE
dbInteger 2 int
dbLong 4 long
dbCurrency 8 Currency ( COleCurrency)
dbSingle 4 float
dbDouble 8 double
dbDate 8 날짜/시간( COleDateTime)
dbText 1 - 255 Text( CString)
dbLongBinary 0 Long Binary(OLE 개체), CLongBinary 또는 CByteArray
dbMemo 0 메모( CString)

lSize
텍스트가 포함된 필드의 최대 크기(바이트)나 텍스트 또는 숫자 값이 포함된 필드의 고정 크기를 나타내는 값입니다. lSize 매개 변수는 텍스트 필드를 제외한 모든 필드에 대해 무시됩니다.

lAttributes
필드의 특성에 해당하는 값이며 비트 OR을 사용하여 결합할 수 있습니다.

상수 설명
dbFixedField 필드 크기가 고정되어 있습니다(숫자 필드의 경우 기본값).
dbVariableField 필드 크기는 변수입니다(텍스트 필드만 해당).
dbAutoIncrField 새 레코드의 필드 값은 변경할 수 없는 고유한 long 정수로 자동으로 증가합니다. Microsoft Jet 데이터베이스 테이블에 대해서만 지원됩니다.
dbUpdatableField 필드 값을 변경할 수 있습니다.
dbDescending 필드는 내림차순(Z - A 또는 100 - 0) 순서로 정렬됩니다(Index 개체의 Fields 컬렉션에 있는 Field 개체에만 적용됨). 이 상수는 생략하면 필드가 오름차순(A - Z 또는 0 - 100) 순서(기본값)로 정렬됩니다.

fieldinfo
CDaoFieldInfo 구조체에 대한 참조입니다.

설명

DAOField OLE(개체)가 만들어지고 OLE(Fields) 개체의 Fields 컬렉션에 DAOTableDef 추가됩니다. 개체 속성을 검사하는 데 사용하는 것 외에도 tabledef에서 새 필드를 만들기 위한 입력 매개 변수를 생성하는 데 사용할 CDaoFieldInfo 수도 있습니다. 첫 번째 버전은 CreateField 사용하기가 더 간단하지만 더 세부적인 제어를 원하는 경우 매개 변수를 사용하는 CDaoFieldInfo 두 번째 버전의 CreateField버전을 사용할 수 있습니다.

매개 변수를 사용하는 CDaoFieldInfo 버전을 CreateField 사용하는 경우 구조체의 다음 각 멤버 CDaoFieldInfo 를 신중하게 설정해야 합니다.

  • m_strName

  • m_nType

  • m_lSize

  • m_lAttributes

  • m_bAllowZeroLength

나머지 멤버 CDaoFieldInfo 는 멤버에 적합한 0, FALSE 또는 빈 문자열로 설정해야 합니다. 그렇지 않으면 CDaoException 발생할 수 있습니다.

관련 정보는 DAO 도움말의 "CreateField 메서드" 항목을 참조하세요.

CDaoTableDef::CreateIndex

이 함수를 호출하여 테이블에 인덱스 추가

void CreateIndex(CDaoIndexInfo& indexinfo);

매개 변수

indexinfo
CDaoIndexInfo 구조체에 대한 참조입니다.

설명

인덱스는 데이터베이스 테이블에서 액세스하는 레코드의 순서와 중복 레코드가 허용되는지 여부를 지정합니다. 인덱스는 데이터에 대한 효율적인 액세스도 제공합니다.

테이블에 대한 인덱스를 만들 필요는 없지만 인덱싱되지 않은 대규모 테이블에서 특정 레코드에 액세스하거나 레코드 집합을 만드는 데 시간이 오래 걸릴 수 있습니다. 반면에 너무 많은 인덱스를 만들면 모든 인덱스가 자동으로 업데이트되기 때문에 업데이트, 추가 및 삭제 작업이 느려집니다. 만들 인덱스를 결정할 때 이러한 요소를 고려합니다.

구조체의 다음 멤버를 CDaoIndexInfo 설정해야 합니다.

  • m_strName 이름을 제공해야 합니다.

  • m_pFieldInfos 구조체의 CDaoIndexFieldInfo 배열을 가리킵니다.

  • m_nFields 구조체 배열 CDaoFieldInfo 의 필드 수를 지정해야 합니다.

FALSE로 설정하면 나머지 멤버는 무시됩니다. 또한 인덱스 m_lDistinctCount 생성 중에 멤버가 무시됩니다.

CDaoTableDef::D eleteField

이 멤버 함수를 호출하여 필드를 제거하고 액세스할 수 없도록 합니다.

void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);

매개 변수

lpszName
기존 필드의 이름인 문자열 식에 대한 포인터입니다.

nIndex
인덱스별 조회를 위해 테이블의 0부터 시작하는 Fields 컬렉션에 있는 필드의 인덱스입니다.

설명

데이터베이스에 추가되지 않은 새 개체 또는 CanUpdate에서 0이 아닌 값을 반환하는 경우 이 멤버 함수를 사용할 수 있습니다.

관련 정보는 DAO 도움말의 "삭제 방법" 항목을 참조하세요.

CDaoTableDef::D eleteIndex

이 멤버 함수를 호출하여 기본 테이블의 인덱스 삭제

void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);

매개 변수

lpszName
기존 인덱스의 이름인 문자열 식에 대한 포인터입니다.

nIndex
인덱스별 조회를 위해 데이터베이스의 0부터 시작하는 TableDefs 컬렉션에 있는 인덱스 개체의 배열 인덱스입니다.

설명

데이터베이스에 추가되지 않은 새 개체 또는 CanUpdate에서 0이 아닌 값을 반환하는 경우 이 멤버 함수를 사용할 수 있습니다.

관련 정보는 DAO 도움말의 "삭제 방법" 항목을 참조하세요.

CDaoTableDef::GetAttributes

개체의 CDaoTableDef 경우 반환 값은 개체가 나타내는 CDaoTableDef 테이블의 특성을 지정하며 다음 상수의 합계일 수 있습니다.

long GetAttributes();

Return Value

개체의 하나 이상의 특성을 나타내는 값을 반환합니다 CDaoTableDef .

설명

상수 설명
dbAttachExclusive Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 테이블이 단독 용도로 열려 있는 연결된 테이블임을 나타냅니다.
dbAttachSavePWD Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 연결된 테이블의 사용자 ID 및 암호가 연결 정보와 함께 저장됨을 나타냅니다.
dbSystemObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 시스템 테이블임을 나타냅니다.
dbHiddenObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 숨겨진 테이블임을 나타냅니다.
dbAttachedTable 테이블이 Paradox 데이터베이스와 같은 비 ODBC 데이터베이스의 연결된 테이블임을 나타냅니다.
dbAttachedODBC 테이블이 Microsoft SQL Server와 같은 ODBC 데이터베이스의 연결된 테이블임을 나타냅니다.

시스템 테이블은 다양한 내부 정보를 포함하기 위해 Microsoft Jet 데이터베이스 엔진에서 만든 테이블입니다.

숨겨진 테이블은 Microsoft Jet 데이터베이스 엔진에서 임시로 사용하기 위해 만든 테이블입니다.

관련 정보는 DAO 도움말의 "특성 속성" 항목을 참조하세요.

CDaoTableDef::GetConnect

이 멤버 함수를 호출하여 데이터 원본에 대한 연결 문자열 가져옵니다.

CString GetConnect();

Return Value

CString 테이블의 경로 및 데이터베이스 형식을 포함하는 개체입니다.

설명

CDaoTableDef 연결된 테이블을 CString 나타내는 개체의 경우 개체는 하나 또는 두 부분으로 구성됩니다(데이터베이스 형식 지정자 및 데이터베이스 경로).

아래 표에 나와 있는 경로는 데이터베이스 파일을 포함하는 디렉터리의 전체 경로이며 식별자 "DATABASE="가 앞에 와야 합니다. 일부 경우(Microsoft Jet 및 Microsoft Excel 데이터베이스와 마찬가지로) 데이터베이스 경로 인수에 특정 파일 이름이 포함됩니다.

CDaoTableDef::SetConnect의 테이블에는 가능한 데이터베이스 형식과 해당 데이터베이스 지정자 및 경로가 표시됩니다.

Microsoft Jet 데이터베이스 기본 테이블의 경우 지정자는 빈 문자열("")입니다.

암호가 필요하지만 제공되지 않은 경우 ODBC 드라이버는 테이블에 처음 액세스할 때와 연결을 닫고 다시 열 때 로그인 대화 상자를 표시합니다. 연결된 테이블에 특성이 dbAttachSavePWD 있으면 테이블을 다시 열 때 로그인 프롬프트가 표시되지 않습니다.

관련 정보는 DAO 도움말의 "Connect 속성" 항목을 참조하세요.

CDaoTableDef::GetDateCreated

개체의 기본 테이블이 만들어진 날짜와 시간을 확인하려면 이 함수를 CDaoTableDef 호출합니다.

COleDateTime GetDateCreated();

Return Value

개체의 기본 테이블 생성 날짜와 시간을 포함하는 값입니다 CDaoTableDef .

설명

날짜 및 시간 설정은 기본 테이블을 만들거나 마지막으로 업데이트한 컴퓨터에서 파생됩니다. 다중 사용자 환경에서 사용자는 이러한 설정을 파일 서버에서 직접 가져와서 불일치를 방지해야 합니다. 즉, 모든 클라이언트는 한 서버에서 "표준" 시간 원본을 사용해야 합니다.

관련 정보는 DAO 도움말의 "DateCreated, LastUpdated 속성" 항목을 참조하세요.

CDaoTableDef::GetDateLastUpdated

개체의 기본 테이블이 마지막으로 업데이트된 날짜와 시간을 확인하려면 이 함수를 CDaoTableDef 호출합니다.

COleDateTime GetDateLastUpdated();

Return Value

개체의 기본 CDaoTableDef 테이블이 마지막으로 업데이트된 날짜와 시간을 포함하는 값입니다.

설명

날짜 및 시간 설정은 기본 테이블을 만들거나 마지막으로 업데이트한 컴퓨터에서 파생됩니다. 다중 사용자 환경에서 사용자는 이러한 설정을 파일 서버에서 직접 가져와서 불일치를 방지해야 합니다. 즉, 모든 클라이언트는 한 서버에서 "표준" 시간 원본을 사용해야 합니다.

관련 정보는 DAO 도움말의 "DateCreated, LastUpdated 속성" 항목을 참조하세요.

CDaoTableDef::GetFieldCount

이 멤버 함수를 호출하여 테이블에 정의된 필드 수를 검색합니다.

short GetFieldCount();

Return Value

테이블의 필드 수입니다.

설명

값이 0이면 컬렉션에 개체가 없습니다.

관련 정보는 DAO 도움말의 "Count 속성" 항목을 참조하세요.

CDaoTableDef::GetFieldInfo

tabledef에 정의된 필드에 대한 다양한 종류의 정보를 가져오려면 이 멤버 함수를 호출합니다.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

매개 변수

nIndex
인덱스별 조회를 위해 테이블의 0부터 시작하는 Fields 컬렉션에 있는 필드 개체의 인덱스입니다.

fieldinfo
CDaoFieldInfo 구조체에 대한 참조입니다.

dwInfoOptions
검색할 필드에 대한 정보를 지정하는 옵션입니다. 사용 가능한 옵션은 함수가 반환되는 원인과 함께 여기에 나열됩니다.

  • AFX_DAO_PRIMARY_INFO (기본값) 이름, 형식, 크기, 특성입니다. 가장 빠른 성능을 위해 이 옵션을 사용합니다.

  • AFX_DAO_SECONDARY_INFO 기본 정보, 더하기: 서수 위치, 필수, 허용 0 길이, 정렬 순서, 외할 이름, 원본 필드, 원본 테이블

  • AFX_DAO_ALL_INFO 기본 및 보조 정보 및 추가: 유효성 검사 규칙, 유효성 검사 텍스트, 기본값

lpszName
이름별로 조회할 필드 개체의 이름에 대한 포인터입니다. 이름은 필드 이름을 고유하게 지정하는 최대 64자의 문자열입니다.

설명

함수의 한 버전을 사용하면 인덱스별로 필드를 조회할 수 있습니다. 다른 버전을 사용하면 이름으로 필드를 조회할 수 있습니다.

반환된 정보에 대한 설명은 CDaoFieldInfo 구조를 참조하세요. 이 구조체에는 dwInfoOptions 설명 에 나열된 정보 항목에 해당하는 멤버가 있습니다. 한 수준에서 정보를 요청하면 이전 수준에 대한 정보도 얻을 수 있습니다.

관련 정보는 DAO 도움말의 "특성 속성" 항목을 참조하세요.

CDaoTableDef::GetIndexCount

이 멤버 함수를 호출하여 테이블의 인덱스 수를 가져옵니다.

short GetIndexCount();

Return Value

테이블의 인덱스 수입니다.

설명

값이 0이면 컬렉션에 인덱스가 없습니다.

관련 정보는 DAO 도움말의 "Count 속성" 항목을 참조하세요.

CDaoTableDef::GetIndexInfo

tabledef에 정의된 인덱스에 대한 다양한 종류의 정보를 가져오려면 이 멤버 함수를 호출합니다.

void GetIndexInfo(
    int nIndex,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetIndexInfo(
    LPCTSTR lpszName,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

매개 변수

nIndex
컬렉션의 위치별로 조회하기 위해 테이블의 0부터 시작하는 Indexes 컬렉션에 있는 Index 개체의 숫자 인덱스입니다.

indexinfo
CDaoIndexInfo 구조체에 대한 참조입니다.

dwInfoOptions
검색할 인덱스 정보를 지정하는 옵션입니다. 사용 가능한 옵션은 함수가 반환되는 원인과 함께 여기에 나열됩니다.

  • AFX_DAO_PRIMARY_INFO 이름, 필드 정보, 필드 가장 빠른 성능을 위해 이 옵션을 사용합니다.

  • AFX_DAO_SECONDARY_INFO 기본 정보 및 추가: 기본, 고유, 클러스터형, Null 무시, 필수, 외국어

  • AFX_DAO_ALL_INFO 기본 및 보조 정보, 플러스: 고유 개수

lpszName
이름별로 조회할 인덱스 개체의 이름에 대한 포인터입니다.

설명

함수의 한 버전을 사용하면 컬렉션의 위치별로 인덱스 조회를 수행할 수 있습니다. 다른 버전을 사용하면 이름으로 인덱스 조회를 수행할 수 있습니다.

반환된 정보에 대한 설명은 CDaoIndexInfo 구조를 참조하세요. 이 구조체에는 dwInfoOptions 설명 에 나열된 정보 항목에 해당하는 멤버가 있습니다. 한 수준에서 정보를 요청하면 이전 수준에 대한 정보도 얻을 수 있습니다.

관련 정보는 DAO 도움말의 "특성 속성" 항목을 참조하세요.

CDaoTableDef::GetName

이 멤버 함수를 호출하여 기본 테이블의 사용자 정의 이름을 가져옵니다.

CString GetName();

Return Value

테이블의 사용자 정의 이름입니다.

설명

이 이름은 문자로 시작하며 최대 64자를 포함할 수 있습니다. 숫자와 밑줄 문자를 포함할 수 있지만 문장 부호나 공백은 포함할 수 없습니다.

관련 정보는 DAO 도움말의 "Name 속성" 항목을 참조하세요.

CDaoTableDef::GetRecordCount

이 멤버 함수를 호출하여 개체에 CDaoTableDef 있는 레코드 수를 확인합니다.

long GetRecordCount();

Return Value

tabledef 개체에서 액세스하는 레코드의 수입니다.

설명

테이블 형식 CDaoTableDef 개체에 대한 호출 GetRecordCount 은 테이블의 대략적인 레코드 수를 반영하며 테이블 레코드가 추가 및 삭제될 때 즉시 영향을 받습니다. 롤백된 트랜잭션은 CDaoWorkSpace::CompactDatabase를 호출할 때까지 레코드 수의 일부로 표시됩니다. CDaoTableDef 레코드가 없는 개체의 레코드 개수 속성 설정은 0입니다. 연결된 테이블 또는 ODBC 데이터베이스를 사용하는 경우 항상 -1을 반환합니다 GetRecordCount .

관련 정보는 DAO 도움말의 "RecordCount 속성" 항목을 참조하세요.

CDaoTableDef::GetSourceTableName

이 멤버 함수를 호출하여 원본 데이터베이스에서 연결된 테이블의 이름을 검색합니다.

CString GetSourceTableName();

Return Value

CString 연결된 테이블의 원본 이름을 지정하는 개체이거나, 네이티브 데이터 테이블인 경우 빈 문자열입니다.

설명

연결된 테이블은 Microsoft Jet 데이터베이스에 연결된 다른 데이터베이스의 테이블입니다. 연결된 테이블의 데이터는 다른 애플리케이션에서 조작할 수 있는 외부 데이터베이스에 남아 있습니다.

관련 정보는 DAO 도움말의 "SourceTableName 속성" 항목을 참조하세요.

CDaoTableDef::GetValidationRule

테이블 정의에 대한 유효성 검사 규칙을 검색하려면 이 멤버 함수를 호출합니다.

CString GetValidationRule();

Return Value

CString 테이블이 변경되거나 테이블에 추가될 때 필드의 데이터의 유효성을 검사하는 개체입니다.

설명

유효성 검사 규칙은 업데이트 작업과 관련하여 사용됩니다. tabledef에 유효성 검사 규칙이 포함된 경우 데이터가 변경되기 전에 해당 tabledef에 대한 업데이트가 미리 정해진 조건과 일치해야 합니다. 변경 내용이 조건과 일치하지 않으면 GetValidationText 값을 포함하는 예외가 throw됩니다. 개체 CStringCDaoTableDef 경우 연결된 테이블에 대해 읽기 전용이며 기본 테이블의 경우 읽기/쓰기가 가능합니다.

관련 정보는 DAO 도움말의 "ValidationRule 속성" 항목을 참조하세요.

CDaoTableDef::GetValidationText

사용자가 유효성 검사 규칙과 일치하지 않는 데이터를 입력할 때 표시할 문자열을 검색하려면 이 함수를 호출합니다.

CString GetValidationText();

Return Value

CString 사용자가 유효성 검사 규칙과 일치하지 않는 데이터를 입력하는 경우 표시되는 텍스트를 지정하는 개체입니다.

설명

개체 CStringCDaoTableDef 경우 연결된 테이블에 대해 읽기 전용이며 기본 테이블의 경우 읽기/쓰기가 가능합니다.

관련 정보는 DAO 도움말의 "ValidationText 속성" 항목을 참조하세요.

CDaoTableDef::IsOpen

이 멤버 함수를 호출하여 개체가 CDaoTableDef 현재 열려 있는지 여부를 확인합니다.

BOOL IsOpen() const;

Return Value

개체가 CDaoTableDef 열려 있으면 0이 아니고, 그렇지 않으면 0입니다.

설명

CDaoTableDef::m_pDatabase

이 테이블의 CDaoDatabase 개체에 대한 포인터를 포함합니다.

설명

CDaoTableDef::m_pDAOTableDef

개체의 기본 DAO tabledef 개체에 대한 OLE 인터페이스에 대한 포인터를 CDaoTableDef 포함합니다.

설명

DAO 인터페이스에 직접 액세스해야 하는 경우 이 포인터를 사용합니다.

CDaoTableDef::Open

이 멤버 함수를 호출하여 데이터베이스의 TableDef 컬렉션에 이전에 저장된 tabledef를 엽니다.

virtual void Open(LPCTSTR lpszName);

매개 변수

lpszName
테이블 이름을 지정하는 문자열에 대한 포인터입니다.

설명

이 멤버 함수를 호출하여 연결된 테이블에 대한 연결 정보를 업데이트합니다.

void RefreshLink();

설명

해당 CDaoTableDef 개체에서 SetConnect를 호출한 다음 멤버 함수를 사용하여 RefreshLink 정보를 업데이트하여 연결된 테이블에 대한 연결 정보를 변경합니다. 호출 RefreshLink할 때 연결된 테이블의 속성은 변경되지 않습니다.

수정된 연결 정보를 강제로 적용하려면 이 tabledef를 기반으로 열려 있는 모든 CDaoRecordset 개체를 닫아야 합니다.

관련 정보는 DAO 도움말의 "RefreshLink 메서드" 항목을 참조하세요.

CDaoTableDef::SetAttributes

개체의 하나 이상의 특성을 CDaoTableDef 나타내는 값을 설정합니다.

void SetAttributes(long lAttributes);

매개 변수

lAttributes
개체가 나타내는 CDaoTableDef 테이블의 특징이며 다음 상수의 합계일 수 있습니다.

상수 설명
dbAttachExclusive Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 테이블이 단독 용도로 열려 있는 연결된 테이블임을 나타냅니다.
dbAttachSavePWD Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스의 경우 연결된 테이블의 사용자 ID 및 암호가 연결 정보와 함께 저장됨을 나타냅니다.
dbSystemObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 시스템 테이블임을 나타냅니다.
dbHiddenObject 테이블이 Microsoft Jet 데이터베이스 엔진에서 제공하는 숨겨진 테이블임을 나타냅니다.

설명

여러 특성을 설정할 때 비트 OR 연산자를 사용하여 적절한 상수를 합산하여 결합할 수 있습니다. 연결되지 않은 테이블에서 설정 dbAttachExclusive 하면 예외가 발생합니다. 다음 값을 결합하면 예외도 생성합니다.

  • dbAttachExclusive | dbAttachedODBC

  • dbAttachSavePWD | dbAttachedTable

관련 정보는 DAO 도움말의 "특성 속성" 항목을 참조하세요.

CDaoTableDef::SetConnect

CDaoTableDef 연결된 테이블을 나타내는 개체의 경우 문자열 개체는 하나 또는 두 부분으로 구성됩니다(데이터베이스 형식 지정자 및 데이터베이스 경로).

void SetConnect(LPCTSTR lpszConnect);

매개 변수

lpszConnect
ODBC 또는 설치 가능한 ISAM 드라이버에 전달할 추가 매개 변수를 지정하는 문자열 식에 대한 포인터입니다.

설명

아래 표에 나와 있는 경로는 데이터베이스 파일을 포함하는 디렉터리의 전체 경로이며 식별자 "DATABASE="가 앞에 와야 합니다. 일부 경우(Microsoft Jet 및 Microsoft Excel 데이터베이스와 마찬가지로) 데이터베이스 경로 인수에 특정 파일 이름이 포함됩니다.

참고 항목

"DATABASE=drive:\\path" 형식의 등호 로그인 경로 문 주위에 공백을 포함하지 마세요. 이로 인해 예외가 throw되고 연결이 실패합니다.

다음 표에서는 가능한 데이터베이스 형식과 해당 데이터베이스 지정자 및 경로를 보여 줍니다.

데이터베이스 유형 지정자 Path
Jet 데이터베이스 엔진을 사용하는 데이터베이스 "[ database];" " drive:\\ path\\ 파일 이름입니다. MDB"
dBASE III "dBASE III;" " drive:\\ path"
dBASE IV "dBASE IV;" " drive:\\ path"
dBASE 5 "dBASE 5.0;" " drive:\\ path"
Paradox 3.x "Paradox 3.x;" " drive:\\ path"
Paradox 4.x "Paradox 4.x;" " drive:\\ path"
Paradox 5.x "Paradox 5.x;" " drive:\\ path"
Excel 3.0 "Excel 3.0;" " drive:\\ path\\ filename.XLS"
Excel 4.0 "Excel 4.0;" " drive:\\ path\\ filename.XLS"
Excel 5.0 또는 Excel 95 "Excel 5.0;" " drive:\\ path\\ filename.XLS"
Excel 97 "Excel 8.0;" " drive:\\ path\ filename.XLS"
HTML 가져오기 "HTML 가져오기;" " drive:\\ path\ filename"
HTML 내보내기 "HTML 내보내기;" " drive:\\ path"
Text "Text;" "drive:\\path"
ODBC "ODBC; DATABASE= database; UID= 사용자; PWD= 암호; DSN= datasourcename; LOGINTIMEOUT= seconds;" (이것은 모든 서버에 대한 완전한 연결 문자열 아닐 수 있습니다. 이는 단지 예일 뿐입니다. 매개 변수 사이에 공백을 두지 않는 것이 매우 중요합니다.) None
Exchange "Exchange;

MAPILEVEL= folderpath;

[TABLETYPE={ 0 | 1 };]

[PROFILE= profile;]

[PWD= 암호;]

[DATABASE= database;]"
"drive:\\ path\\ filename. MDB"

참고 항목

Btrieve는 DAO 3.5를 기준으로 더 이상 지원되지 않습니다.

연결 문자열 이중 백슬래시(\\)를 사용해야 합니다. 를 사용하여 SetConnect기존 연결의 속성을 수정한 경우 이후에 RefreshLink를 호출해야 합니다. 연결 속성을 사용하여 SetConnect초기화하는 경우 호출 RefreshLink할 필요가 없지만 이렇게 하려면 먼저 tabledef를 추가합니다.

암호가 필요하지만 제공되지 않은 경우 ODBC 드라이버는 테이블에 처음 액세스할 때와 연결을 닫고 다시 열 때 로그인 대화 상자를 표시합니다.

멤버 함수에 소스 인수 CreateCDaoTableDef 제공하여 개체에 대한 연결 문자열 설정할 수 있습니다. 설정을 확인하여 데이터베이스의 형식, 경로, 사용자 ID, 암호 또는 ODBC 데이터 원본을 확인할 수 있습니다. 자세한 내용은 특정 드라이버에 대한 설명서를 참조하세요.

관련 정보는 DAO 도움말의 "Connect 속성" 항목을 참조하세요.

CDaoTableDef::SetName

테이블에 대한 사용자 정의 이름을 설정하려면 이 멤버 함수를 호출합니다.

void SetName(LPCTSTR lpszName);

매개 변수

lpszName
테이블의 이름을 지정하는 문자열 식에 대한 포인터입니다.

설명

이름은 문자로 시작해야 하며 최대 64자를 포함할 수 있습니다. 숫자와 밑줄 문자를 포함할 수 있지만 문장 부호나 공백은 포함할 수 없습니다.

관련 정보는 DAO 도움말의 "Name 속성" 항목을 참조하세요.

CDaoTableDef::SetSourceTableName

이 멤버 함수를 호출하여 연결된 테이블의 이름 또는 개체의 기반이 되는 CDaoTableDef 기본 테이블의 이름을 데이터의 원래 원본에 있는 대로 지정합니다.

void SetSourceTableName(LPCTSTR lpszSrcTableName);

매개 변수

lpszSrcTableName
외부 데이터베이스의 테이블 이름을 지정하는 문자열 식에 대한 포인터입니다. 기본 테이블의 경우 설정은 빈 문자열("")입니다.

설명

그런 다음 RefreshLink를 호출해야 합니다. 이 속성 설정은 기본 테이블에 대해 비어 있으며 연결된 테이블 또는 컬렉션에 추가되지 않은 개체에 대한 읽기/쓰기가 가능합니다.

관련 정보는 DAO 도움말의 "SourceTableName 속성" 항목을 참조하세요.

CDaoTableDef::SetValidationRule

tabledef에 대한 유효성 검사 규칙을 설정하려면 이 멤버 함수를 호출합니다.

void SetValidationRule(LPCTSTR lpszValidationRule);

매개 변수

lpszValidationRule
작업의 유효성을 검사하는 문자열 식에 대한 포인터입니다.

설명

유효성 검사 규칙은 업데이트 작업과 관련하여 사용됩니다. tabledef에 유효성 검사 규칙이 포함된 경우 데이터가 변경되기 전에 해당 tabledef에 대한 업데이트가 미리 정해진 조건과 일치해야 합니다. 변경 내용이 조건과 일치하지 않으면 GetValidationText 텍스트가 포함된 예외가 표시됩니다.

유효성 검사는 Microsoft Jet 데이터베이스 엔진을 사용하는 데이터베이스에 대해서만 지원됩니다. 식은 사용자 정의 함수, 도메인 집계 함수, SQL 집계 함수 또는 쿼리를 참조할 수 없습니다. 개체에 대한 CDaoTableDef 유효성 검사 규칙은 해당 개체의 여러 필드를 참조할 수 있습니다.

예를 들어 hire_date 및 termination_date 필드의 경우 유효성 검사 규칙은 다음과 같습니다.

myTableDef.SetValidationRule(_T("termination_date > hire_date"));

관련 정보는 DAO 도움말의 "ValidationRule 속성" 항목을 참조하세요.

CDaoTableDef::SetValidationText

이 멤버 함수를 호출하여 Microsoft Jet 데이터베이스 엔진에서 지원하는 기본 테이블이 있는 개체에 대한 CDaoTableDef 유효성 검사 규칙의 예외 텍스트를 설정합니다.

void SetValidationText(LPCTSTR lpszValidationText);

매개 변수

lpszValidationText
입력한 데이터가 잘못된 경우 표시되는 텍스트를 지정하는 문자열 식에 대한 포인터입니다.

설명

연결된 테이블의 유효성 검사 텍스트를 설정할 수 없습니다.

관련 정보는 DAO 도움말의 "ValidationText 속성" 항목을 참조하세요.

참고 항목

CObject 클래스
계층 구조 차트
CDaoDatabase 클래스
CDaoRecordset 클래스