다음을 통해 공유


CDaoQueryDef 수업

일반적으로 데이터베이스에 저장되는 쿼리 정의 또는 "querydef"를 나타냅니다.

참고 항목

DAO(데이터 액세스 개체)는 Office 2013을 통해 지원됩니다. DAO 3.6은 최종 버전이며 사용되지 않습니다.

구문

class CDaoQueryDef : public CObject

멤버

공용 생성자

속성 설명
CDaoQueryDef::CDaoQueryDef CDaoQueryDef 개체를 생성합니다. 다음 통화 또는 Create필요에 따라 호출 Open 합니다.

공용 메서드

이름 설명
CDaoQueryDef::Append 데이터베이스의 QueryDefs 컬렉션에 querydef를 저장된 쿼리로 추가합니다.
CDaoQueryDef::CanUpdate 쿼리가 데이터베이스를 업데이트할 수 있는 경우 0이 아닌 값을 반환합니다.
CDaoQueryDef::Close querydef 개체를 닫습니다. 완료하면 C++ 개체를 삭제합니다.
CDaoQueryDef::Create 기본 DAO querydef 개체를 만듭니다. querydef를 임시 쿼리로 사용하거나 호출 Append 하여 데이터베이스에 저장합니다.
CDaoQueryDef::Execute querydef 개체에 의해 정의된 쿼리를 실행합니다.
CDaoQueryDef::GetConnect querydef와 연결된 연결 문자열 반환합니다. 연결 문자열 데이터 원본을 식별합니다. (SQL 통과 쿼리에만 해당하며, 그렇지 않으면 빈 문자열입니다.)
CDaoQueryDef::GetDateCreated 저장된 쿼리를 만든 날짜를 반환합니다.
CDaoQueryDef::GetDateLastUpdated 저장된 쿼리가 마지막으로 업데이트된 날짜를 반환합니다.
CDaoQueryDef::GetFieldCount querydef에서 정의한 필드 수를 반환합니다.
CDaoQueryDef::GetFieldInfo 쿼리에 정의된 지정된 필드에 대한 정보를 반환합니다.
CDaoQueryDef::GetName querydef의 이름을 반환합니다.
CDaoQueryDef::GetODBCTimeout 쿼리 작업을 완료할 수 있는 기간을 결정하는 쿼리 정의가 실행될 때 ODBC에서 사용하는 시간 제한 값을 반환합니다(ODBC 쿼리의 경우).
CDaoQueryDef::GetParameterCount 쿼리에 대해 정의된 매개 변수 수를 반환합니다.
CDaoQueryDef::GetParameterInfo 지정된 매개 변수에 대한 정보를 쿼리에 반환합니다.
CDaoQueryDef::GetParamValue 지정된 매개 변수의 값을 쿼리에 반환합니다.
CDaoQueryDef::GetRecordsAffected 작업 쿼리의 영향을 받는 레코드 수를 반환합니다.
CDaoQueryDef::GetReturnsRecords querydef에서 정의한 쿼리가 레코드를 반환하는 경우 0이 아닌 값을 반환합니다.
CDaoQueryDef::GetSQL querydef에서 정의한 쿼리를 지정하는 SQL 문자열을 반환합니다.
CDaoQueryDef::GetType 삭제, 업데이트, 추가, 테이블 만들기 등 쿼리 유형을 반환합니다.
CDaoQueryDef::IsOpen querydef가 열려 있고 실행할 수 있는 경우 0이 아닌 값을 반환합니다.
CDaoQueryDef::Open 데이터베이스의 QueryDefs 컬렉션에 저장된 기존 querydef를 엽니다.
CDaoQueryDef::SetConnect ODBC 데이터 원본에서 SQL 통과 쿼리에 대한 연결 문자열 설정합니다.
CDaoQueryDef::SetName 쿼리 정의가 생성될 때 사용 중인 이름을 대체하여 저장된 쿼리의 이름을 설정합니다.
CDaoQueryDef::SetODBCTimeout 쿼리 정의가 실행될 때 ODBC에서 사용하는 시간 제한 값(ODBC 쿼리용)을 설정합니다.
CDaoQueryDef::SetParamValue 지정된 매개 변수의 값을 쿼리로 설정합니다.
CDaoQueryDef::SetReturnsRecords querydef에서 레코드를 반환할지 여부를 지정합니다. 이 특성을 TRUE로 설정하는 것은 SQL 통과 쿼리에만 유효합니다.
CDaoQueryDef::SetSQL querydef에서 정의한 쿼리를 지정하는 SQL 문자열을 설정합니다.

공용 데이터 멤버

속성 설명
CDaoQueryDef::m_pDAOQueryDef 기본 DAO querydef 개체에 대한 OLE 인터페이스에 대한 포인터입니다.
CDaoQueryDef::m_pDatabase querydef가 CDaoDatabase 연결된 개체에 대한 포인터입니다. querydef가 데이터베이스에 저장될 수도 있고 저장되지 않을 수도 있습니다.

설명

querydef는 쿼리를 설명하는 SQL 문과 "만든 날짜" 및 "ODBC 시간 제한"과 같은 해당 속성을 포함하는 데이터 액세스 개체입니다. 임시 쿼리 정의 개체를 저장하지 않고 만들 수도 있지만 데이터베이스에 일반적으로 재사용되는 쿼리를 저장하는 것이 편리하고 훨씬 효율적입니다. CDaoDatabase 개체는 저장된 querydefs를 포함하는 QueryDefs 컬렉션이라는 컬렉션을 유지 관리합니다.

참고 항목

DAO 데이터베이스 클래스는 ODBC(Open Database Connectivity)를 기반으로 하는 MFC(Microsoft Foundation Class) 데이터베이스 클래스와 다릅니다. 모든 DAO 데이터베이스 클래스 이름에는 "CDao" 접두사가 있습니다. DAO 클래스를 사용하여 ODBC 데이터 원본에 계속 액세스할 수 있습니다. 일반적으로 DAO를 기반으로 하는 MFC 클래스는 ODBC를 기반으로 하는 MFC 클래스보다 더 많은 기능을 제공합니다. DAO 기반 클래스는 자체 데이터베이스 엔진을 통해 ODBC 드라이버를 포함한 데이터에 액세스할 수 있습니다. DAO 기반 클래스는 DAO를 직접 호출하지 않고도 클래스를 통해 테이블을 추가하는 것과 같은 DDL(데이터 정의 언어) 작업도 지원합니다.

사용

querydef 개체를 사용하여 기존 저장된 쿼리를 사용하거나 저장된 새 쿼리 또는 임시 쿼리를 만듭니다.

  1. 모든 경우에 먼저 개체를 CDaoQueryDef 생성하여 쿼리가 속한 CDaoDatabase 개체에 대한 포인터를 제공합니다.

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

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

    • 저장된 새 쿼리를 만들려면 querydef 개체의 멤버 만들기 함수를 호출하여 쿼리의 이름을 제공합니다. 그런 다음, Append를 호출하여 쿼리를 데이터베이스의 QueryDefs 컬렉션에 추가하여 저장합니다. Create 는 querydef를 열린 상태로 전환하므로 호출한 후에는 호출 Create Open하지 않습니다.

    • 임시 querydef를 만들려면 .를 호출 Create합니다. 쿼리 이름에 빈 문자열을 전달합니다. 호출 Append하지 마세요.

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

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

목적

다음 용도로 querydef 개체를 사용할 수 있습니다.

  • 개체를 CDaoRecordset 만들려면

  • 개체의 Execute 멤버 함수를 호출하여 작업 쿼리 또는 SQL 통과 쿼리를 직접 실행하려면

select, action, crosstab, delete, update, append, make-table, data definition, SQL pass-through, union 및 bulk 쿼리를 비롯한 모든 유형의 쿼리에 대해 querydef 개체를 사용할 수 있습니다. 제공하는 SQL 문의 내용에 따라 쿼리 유형이 결정됩니다. 쿼리 형식에 대한 자세한 내용은 멤버 함수 및 GetType 멤버 함수를 Execute 참조하세요. 레코드 집합은 일반적으로 행 반환 쿼리에 사용되며 일반적으로 SELECT를 사용하는 쿼리... FROM 키워드입니다. Execute 는 대량 작업에 가장 일반적으로 사용됩니다. 자세한 내용은 ExecuteCDaoRecordset를 참조하세요.

Querydefs 및 레코드 집합

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

쿼리 집합이 열려 있지 않으면 querydef를 사용하여 레코드 집합(querydef에 가장 일반적으로 사용됨)을 만들 수 없습니다. 쿼리 정의 중 하나 Open 또는 Create를 호출하여 쿼리를 열린 상태로 전환합니다.

외부 데이터베이스

Querydef 개체는 외부 데이터베이스 엔진의 네이티브 SQL 방언을 사용하는 기본 방법입니다. 예를 들어 Microsoft SQL Server에서 사용되는 Transact SQL 쿼리를 만들고 querydef 개체에 저장할 수 있습니다. Microsoft Jet 데이터베이스 엔진을 기반으로 하지 않는 SQL 쿼리를 사용해야 하는 경우 외부 데이터 원본을 가리키는 연결 문자열 제공해야 합니다. 유효한 연결 문자열 있는 쿼리는 데이터베이스 엔진을 우회하고 처리를 위해 외부 데이터베이스 서버에 직접 쿼리를 전달합니다.

ODBC 테이블을 사용하는 기본 방법은 Microsoft Jet에 연결하는 것입니다(. MDB) 데이터베이스.

관련 정보는 DAO SDK의 "QueryDef 개체", "QueryDefs 컬렉션" 및 "CdbDatabase 개체" 항목을 참조하세요.

상속 계층 구조

CObject

CDaoQueryDef

요구 사항

머리글: afxdao.h

CDaoQueryDef::Append

Create를 호출하여 새 querydef 개체를 만든 후 이 멤버 함수를 호출합니다.

virtual void Append();

설명

Append 는 데이터베이스의 QueryDefs 컬렉션에 개체를 추가하여 데이터베이스에 querydef를 저장합니다. 쿼리 디프를 추가하지 않고 임시 개체로 사용할 수 있지만 유지하려면 호출 Append해야 합니다.

임시 querydef 개체를 추가하려고 하면 MFC는 CDaoException 형식의 예외를 throw합니다.

CDaoQueryDef::CanUpdate

이 멤버 함수를 호출하여 해당 이름 또는 SQL 문자열 변경과 같이 querydef를 수정할 수 있는지 여부를 결정합니다.

BOOL CanUpdate();

Return Value

querydef를 수정할 수 있는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

다음과 같은 경우 querydef를 수정할 수 있습니다.

  • 읽기 전용으로 열려 있는 데이터베이스를 기반으로 하지 않습니다.

  • 데이터베이스에 대한 업데이트 권한이 있습니다.

    이는 보안 기능을 구현했는지 여부에 따라 달라집니다. MFC는 보안에 대한 지원을 제공하지 않습니다. DAO를 직접 호출하거나 Microsoft Access를 사용하여 직접 구현해야 합니다. DAO 도움말의 "Permissions 속성" 항목을 참조하세요.

CDaoQueryDef::CDaoQueryDef

CDaoQueryDef 개체를 생성합니다.

CDaoQueryDef(CDaoDatabase* pDatabase);

매개 변수

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

설명

개체는 데이터베이스의 QueryDefs 컬렉션에 저장된 기존 querydef, 컬렉션에 저장할 새 쿼리 또는 저장할 임시 쿼리를 나타낼 수 있습니다. 다음 단계는 querydef의 유형에 따라 달라집니다.

  • 개체가 기존 querydef를 나타내는 경우 개체의 Open 멤버 함수를 호출하여 초기화합니다.

  • 개체가 저장할 새 querydef를 나타내는 경우 개체의 멤버 만들기 함수를 호출합니다. 그러면 데이터베이스의 QueryDefs 컬렉션에 개체가 추가됩니다. 그런 다음 멤버 함수를 호출 CDaoQueryDef 하여 개체의 특성을 설정합니다. 마지막으로, 추가를 호출 합니다.

  • 개체가 임시 querydef(데이터베이스에 저장되지 않음)를 나타내는 경우 쿼리 이름에 빈 문자열을 전달하여 호출 Create합니다. 호출 Create한 후 해당 특성을 직접 설정하여 querydef를 초기화합니다. 호출 Append하지 마세요.

querydef의 특성을 설정하려면 SetName, SetSQL, SetConnect, SetODBCTimeout 및 SetReturnsRecords 멤버 함수를 사용할 수 있습니다.

querydef 개체를 완료하면 Close 멤버 함수를 호출합니다. querydef에 대한 포인터가 있는 경우 연산자를 delete 사용하여 C++ 개체를 삭제합니다.

CDaoQueryDef::Close

querydef 개체 사용을 마치면 이 멤버 함수를 호출합니다.

virtual void Close();

설명

querydef를 닫으면 기본 DAO 개체가 해제되지만 저장된 DAO querydef 개체 또는 C++ CDaoQueryDef 개체는 삭제되지 않습니다. 이는 CDaoDatabase::D eleteQueryDef와 동일하지 않습니다. 이는 DAO의 데이터베이스 QueryDefs 컬렉션에서 querydef를 삭제합니다(임시 querydef가 아닌 경우).

CDaoQueryDef::Create

이 멤버 함수를 호출하여 저장된 새 쿼리 또는 새 임시 쿼리를 만듭니다.

virtual void Create(
    LPCTSTR lpszName = NULL,
    LPCTSTR lpszSQL = NULL);

매개 변수

lpszName
데이터베이스에 저장된 쿼리의 고유 이름입니다. 문자열에 대한 자세한 내용은 DAO 도움말의 "CreateQueryDef 메서드" 항목을 참조하세요. 기본값인 빈 문자열을 수락하면 임시 querydef가 만들어집니다. 이러한 쿼리는 QueryDefs 컬렉션에 저장되지 않습니다.

lpszSQL
쿼리를 정의하는 SQL 문자열입니다. NULL의 기본값을 수락하는 경우 나중에 SetSQL을 호출하여 문자열을 설정해야 합니다. 그때까지 쿼리는 정의되지 않았습니다. 그러나 정의되지 않은 쿼리를 사용하여 레코드 집합을 열 수 있습니다. 자세한 내용은 비고를 참조하세요. QueryDefs 컬렉션에 querydef를 추가하려면 먼저 SQL 문을 정의해야 합니다.

설명

lpszName에서 이름을 전달하는 경우 Append를 호출하여 데이터베이스의 QueryDefs 컬렉션에 querydef를 저장할 수 있습니다. 그렇지 않으면 개체가 임시 querydef이며 저장되지 않습니다. 두 경우 모두 querydef가 열려 있는 상태이며 이를 사용하여 CDaoRecordset 개체를 만들거나 querydef의 Execute 멤버 함수를 호출할 수 있습니다.

lpszSQL에서 SQL 문을 제공하지 않으면 쿼리 Execute 를 실행할 수 없지만 이를 사용하여 레코드 집합을 만들 수 있습니다. 이 경우 MFC는 레코드 집합의 기본 SQL 문을 사용합니다.

CDaoQueryDef::Execute

이 멤버 함수를 호출하여 querydef 개체에 정의된 쿼리를 실행합니다.

virtual void Execute(int nOptions = dbFailOnError);

매개 변수

nOptions
쿼리의 특성을 결정하는 정수입니다. 관련 정보는 DAO 도움말의 "Execute Method" 항목을 참조하세요. 비트 OR 연산자(|)를 사용하여 이 인수에 대해 다음 상수와 결합할 수 있습니다.

  • dbDenyWrite 다른 사용자에 대한 쓰기 권한을 거부합니다.

  • dbInconsistent 일관되지 않은 업데이트입니다.

  • dbConsistent 일관된 업데이트입니다.

  • dbSQLPassThrough SQL 통과. SQL 문이 처리를 위해 ODBC 데이터베이스에 전달되도록 합니다.

  • dbFailOnError 기본값입니다. 오류가 발생하면 업데이트를 롤백하고 사용자에게 오류를 보고합니다.

  • dbSeeChanges 다른 사용자가 편집 중인 데이터를 변경하는 경우 런타임 오류를 생성합니다.

참고 항목

"일관성 없음" 및 "일관성"이라는 용어에 대한 설명은 DAO 도움말의 "Execute 메서드" 항목을 참조하세요.

설명

이러한 방식으로 실행에 사용되는 Querydef 개체는 다음 쿼리 형식 중 하나만 나타낼 수 있습니다.

  • 작업 쿼리

  • SQL 통과 쿼리

Execute 는 레코드를 반환하는 쿼리(예: 쿼리 선택)에서 작동하지 않습니다. Execute는 UPDATE, INSERT 또는 SELECT INTO와 같은 대량 작업 쿼리 또는 DDL(데이터 정의 언어) 작업에 일반적으로 사용됩니다.

ODBC 데이터 원본을 사용하는 기본 방법은 Microsoft Jet(에 테이블을 연결하는 것입니다. MDB) 데이터베이스. 자세한 내용은 DAO 도움말의 "DAO를 사용하여 외부 데이터베이스 액세스" 항목을 참조하세요.

querydef 개체의 GetRecordsAffected 멤버 함수를 호출하여 가장 최근 Execute 호출의 영향을 받는 레코드 수를 확인합니다. 예를 들어 작업 GetRecordsAffected 쿼리를 실행할 때 삭제, 업데이트 또는 삽입된 레코드 수에 대한 정보를 반환합니다. 연속 업데이트 또는 삭제가 적용되는 경우 반환되는 개수는 관련 테이블의 변경 내용을 반영하지 않습니다.

둘 다 포함하거나 둘 다 dbInconsistent dbConsistent 포함하지 않으면 결과가 기본값 dbInconsistent입니다.

Execute 는 레코드 집합을 반환하지 않습니다. 레코드를 선택하는 쿼리에서 사용하면 Execute MFC가 CDaoException 형식의 예외를 throw합니다.

CDaoQueryDef::GetConnect

이 멤버 함수를 호출하여 querydef의 데이터 원본과 연결된 연결 문자열 가져옵니다.

CString GetConnect();

Return Value

CString querydef에 대한 연결 문자열 포함하는 A.

설명

이 함수는 ODBC 데이터 원본 및 특정 ISAM 드라이버에서만 사용됩니다. Microsoft Jet(.MDB) 데이터베이스에는 사용되지 않습니다. 이 경우 GetConnect 빈 문자열을 반환합니다. 자세한 내용은 SetConnect를 참조하세요.

ODBC 테이블을 사용하는 기본 방법은 테이블에 연결하는 것입니다. MDB 데이터베이스. 자세한 내용은 DAO 도움말의 "DAO를 사용하여 외부 데이터베이스 액세스" 항목을 참조하세요.

연결 문자열 대한 자세한 내용은 DAO 도움말의 "Connect 속성" 항목을 참조하세요.

CDaoQueryDef::GetDateCreated

이 멤버 함수를 호출하여 querydef 개체가 만들어진 날짜를 가져옵니다.

COleDateTime GetDateCreated();

Return Value

querydef를 만든 날짜와 시간을 포함하는 COleDateTime 개체입니다.

설명

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

CDaoQueryDef::GetDateLastUpdated

이 멤버 함수를 호출하여 querydef 개체가 마지막으로 업데이트된 날짜(이름, SQL 문자열 또는 연결 문자열 같은 속성이 변경된 날짜를 가져옵니다.

COleDateTime GetDateLastUpdated();

Return Value

COleDateTime querydef가 마지막으로 업데이트된 날짜와 시간을 포함하는 개체입니다.

설명

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

CDaoQueryDef::GetFieldCount

이 멤버 함수를 호출하여 쿼리의 필드 수를 검색합니다.

short GetFieldCount();

Return Value

쿼리에 정의된 필드 수입니다.

설명

GetFieldCount 는 querydef의 모든 필드를 반복하는 데 유용합니다. 이 목적을 위해 .와 함께 GetFieldInfo사용합니다GetFieldCount.

CDaoQueryDef::GetFieldInfo

이 멤버 함수를 호출하여 querydef에 정의된 필드에 대한 다양한 종류의 정보를 가져옵니다.

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
인덱스별 조회를 위해 querydef의 Fields 컬렉션에 있는 원하는 필드의 인덱스(0부터 시작)입니다.

fieldinfo
요청된 정보를 반환하는 개체에 대한 참조 CDaoFieldInfo 입니다.

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

  • AFX_DAO_PRIMARY_INFO(기본값) 이름, 형식, 크기, 특성

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

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

lpszName
이름별로 조회할 원하는 필드의 이름을 포함하는 문자열입니다. CString을(를) 사용할 수 있습니다.

설명

fieldinfo에서 반환된 정보에 대한 설명은 CDaoFieldInfo 구조를 참조하세요. 이 구조체에는 위의 dwInfoOptions 아래 의 설명 정보에 해당하는 멤버가 있습니다 . 한 수준의 정보를 요청하는 경우 이전 수준의 정보도 얻을 수 있습니다.

CDaoQueryDef::GetName

이 멤버 함수를 호출하여 querydef가 나타내는 쿼리의 이름을 검색합니다.

CString GetName();

Return Value

쿼리의 이름입니다.

설명

쿼리 정의 이름은 고유한 사용자 정의 이름입니다. querydef 이름에 대한 자세한 내용은 DAO 도움말의 "Name 속성" 항목을 참조하세요.

CDaoQueryDef::GetODBCTimeout

이 멤버 함수를 호출하여 ODBC 데이터 원본에 대한 쿼리 시간이 초과되기 전에 현재 시간 제한을 검색합니다.

short GetODBCTimeout();

Return Value

쿼리 시간이 초과되기 전의 시간(초)입니다.

설명

이 시간 제한에 대한 자세한 내용은 DAO 도움말의 "ODBCTimeout 속성" 항목을 참조하세요.

ODBC 테이블을 사용하는 기본 방법은 Microsoft Jet에 연결하는 것입니다(. MDB) 데이터베이스. 자세한 내용은 DAO 도움말의 "DAO를 사용하여 외부 데이터베이스 액세스" 항목을 참조하세요.

CDaoQueryDef::GetParameterCount

이 멤버 함수를 호출하여 저장된 쿼리의 매개 변수 수를 검색합니다.

short GetParameterCount();

Return Value

쿼리에 정의된 매개 변수 수입니다.

설명

GetParameterCount 는 querydef의 모든 매개 변수를 반복하는 데 유용합니다. 이 목적을 위해 .와 함께 GetParameterInfo사용합니다GetParameterCount.

관련 정보는 DAO 도움말의 "매개 변수 개체", "매개 변수 컬렉션" 및 "PARAMETERS 선언(SQL)" 항목을 참조하세요.

CDaoQueryDef::GetParameterInfo

쿼리 정의에 정의된 매개 변수에 대한 정보를 가져오려면 이 멤버 함수를 호출합니다.

void GetParameterInfo(
    int nIndex,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetParameterInfo(
    LPCTSTR lpszName,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

매개 변수

nIndex
인덱스별 조회를 위해 querydef의 Parameters 컬렉션에서 원하는 매개 변수의 인덱스(0부터 시작)입니다.

paraminfo
요청된 정보를 반환하는 CDaoParameterInfo 개체에 대한 참조입니다.

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

  • AFX_DAO_PRIMARY_INFO (기본값) 이름, 형식

lpszName
이름별 조회를 위해 원하는 매개 변수의 이름을 포함하는 문자열입니다. CString을(를) 사용할 수 있습니다.

설명

반환 paraminfo된 정보에 대한 설명은 구조를 참조하세요 CDaoParameterInfo . 이 구조체에는 위의 설명 정보에 해당하는 멤버가 있습니다 dwInfoOptions .

관련 정보는 DAO 도움말의 "PARAMETERS 선언(SQL)" 항목을 참조하세요.

CDaoQueryDef::GetParamValue

이 멤버 함수를 호출하여 querydef의 Parameters 컬렉션에 저장된 지정된 매개 변수의 현재 값을 검색합니다.

virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);

매개 변수

lpszName
이름별로 조회할 값이 있는 매개 변수의 이름입니다.

nIndex
인덱스별 조회를 위해 querydef의 Parameters 컬렉션에 있는 매개 변수의 인덱스(0부터 시작)입니다. GetParameterCountGetParameterInfo를 호출하여 이 값을 가져올 수 있습니다.

Return Value

매개 변수의 값을 포함하는 COleVariant 클래스의 개체입니다.

설명

이름 또는 컬렉션의 서수 위치로 매개 변수에 액세스할 수 있습니다.

관련 정보는 DAO 도움말의 "PARAMETERS 선언(SQL)" 항목을 참조하세요.

CDaoQueryDef::GetRecordsAffected

이 멤버 함수를 호출하여 Execute의 마지막 호출에 영향을 받는 레코드 수를 확인합니다.

long GetRecordsAffected();

Return Value

영향을 받는 레코드의 수입니다.

설명

연속 업데이트 또는 삭제가 적용되는 경우 반환되는 개수는 관련 테이블의 변경 내용을 반영하지 않습니다.

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

CDaoQueryDef::GetReturnsRecords

이 멤버 함수를 호출하여 querydef가 레코드를 반환하는 쿼리를 기반으로 하는지 여부를 확인합니다.

BOOL GetReturnsRecords();

Return Value

querydef가 레코드를 반환하는 쿼리를 기반으로 하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 멤버 함수는 SQL 통과 쿼리에만 사용됩니다. SQL 쿼리에 대한 자세한 내용은 멤버 실행 함수를 참조하세요. SQL 통과 쿼리 작업에 대한 자세한 내용은 SetReturnsRecords 멤버 함수를 참조하세요.

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

CDaoQueryDef::GetSQL

이 멤버 함수를 호출하여 querydef의 기반이 되는 쿼리를 정의하는 SQL 문을 검색합니다.

CString GetSQL();

Return Value

querydef의 기반이 되는 쿼리를 정의하는 SQL 문입니다.

설명

키워드, 테이블 이름 등에 대한 문자열을 구문 분석할 수 있습니다.

관련 정보는 DAO 도움말에서 "SQL 속성", "Microsoft Jet 데이터베이스 엔진 SQL 및 ANSI SQL 비교" 및 "코드에서 SQL을 사용하여 데이터베이스 쿼리" 항목을 참조하세요.

CDaoQueryDef::GetType

이 멤버 함수를 호출하여 querydef의 쿼리 형식을 확인합니다.

short GetType();

Return Value

querydef에서 정의한 쿼리의 형식입니다. 값은 비고를 참조하세요.

설명

쿼리 형식은 querydef를 만들거나 기존 querydef의 SetSQL 멤버 함수를 호출할 때 querydef의 SQL 문자열에 지정한 내용에 따라 설정됩니다. 이 함수에서 반환된 쿼리 형식은 다음 값 중 하나일 수 있습니다.

  • dbQSelect 고르다

  • dbQAction 동작

  • dbQCrosstab 크로스탭

  • dbQDelete 삭제하다

  • dbQUpdate 업데이트

  • dbQAppend 덧붙이다

  • dbQMakeTable 테이블 만들기

  • dbQDDL 데이터 정의

  • dbQSQLPassThrough 통과

  • dbQSetOperation 합집합

  • dbQSPTBulkdbQSQLPassThrough 레코드를 반환하지 않는 쿼리를 지정하는 데 사용됩니다.

참고 항목

SQL 통과 쿼리를 만들려면 상수로 dbSQLPassThrough 설정하지 마세요. 이는 querydef 개체를 만들고 연결 문자열 설정할 때 Microsoft Jet 데이터베이스 엔진에 의해 자동으로 설정됩니다.

SQL 문자열에 대한 자세한 내용은 GetSQL을 참조하세요. 쿼리 형식에 대한 자세한 내용은 실행을 참조 하세요.

CDaoQueryDef::IsOpen

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

BOOL IsOpen() const;

Return Value

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

설명

쿼리 정의는 개체를 호출 Execute 하거나 만드는 CDaoRecordset 데 사용하기 전에 열려 있는 상태여야 합니다. querydef를 열린 상태로 전환하려면(새 querydef의 경우) 또는 Open (기존 querydef의 경우) 호출 Create 합니다.

CDaoQueryDef::m_pDatabase

querydef 개체와 연결된 CDaoDatabase 개체에 대한 포인터를 포함합니다.

설명

데이터베이스에 직접 액세스해야 하는 경우 이 포인터를 사용합니다. 예를 들어 데이터베이스 컬렉션의 다른 querydef 또는 레코드 집합 개체에 대한 포인터를 가져옵니다.

CDaoQueryDef::m_pDAOQueryDef

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

설명

이 포인터는 다른 클래스와의 완전성 및 일관성을 위해 제공됩니다. 그러나 MFC는 DAO 쿼리 디프를 완전히 캡슐화하기 때문에 필요하지 않을 수 있습니다. 사용하는 경우 신중하게 수행합니다. 특히 수행 중인 작업을 알 수 없다면 포인터 값을 변경하지 마세요.

CDaoQueryDef::Open

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

virtual void Open(LPCTSTR lpszName = NULL);

매개 변수

lpszName
열 저장된 querydef의 이름을 포함하는 문자열입니다. CString을(를) 사용할 수 있습니다.

설명

querydef가 열리면 해당 멤버 함수를 Execute 호출하거나 querydef를 사용하여 개체를 CDaoRecordset 만들 수 있습니다.

CDaoQueryDef::SetConnect

이 멤버 함수를 호출하여 querydef 개체의 연결 문자열 설정합니다.

void SetConnect(LPCTSTR lpszConnect);

매개 변수

lpszConnect
연결된 CDaoDatabase 개체에 대한 연결 문자열 포함하는 문자열입니다.

설명

연결 문자열 필요에 따라 ODBC 및 특정 ISAM 드라이버에 추가 정보를 전달하는 데 사용됩니다. Microsoft Jet(.MDB) 데이터베이스에는 사용되지 않습니다.

ODBC 테이블을 사용하는 기본 방법은 테이블에 연결하는 것입니다. MDB 데이터베이스.

ODBC 데이터 원본에 대한 SQL 통과 쿼리를 나타내는 querydef를 실행하기 전에 연결 문자열 SetConnect 설정하고 SetReturnsRecords를 호출하여 쿼리에서 레코드를 반환할지 여부를 지정합니다.

연결 문자열 구조 및 연결 문자열 구성 요소의 예제에 대한 자세한 내용은 DAO 도움말의 "Connect 속성" 항목을 참조하세요.

CDaoQueryDef::SetName

임시가 아닌 querydef의 이름을 변경하려면 이 멤버 함수를 호출합니다.

void SetName(LPCTSTR lpszName);

매개 변수

lpszName
연결된 CDaoDatabase 개체의 비정상 쿼리에 대한 새 이름을 포함하는 문자열입니다.

설명

쿼리 정의 이름은 고유한 사용자 정의 이름입니다. QueryDefs 컬렉션에 querydef 개체를 추가하기 전에 호출 SetName 할 수 있습니다.

CDaoQueryDef::SetODBCTimeout

이 멤버 함수를 호출하여 ODBC 데이터 원본에 대한 쿼리 시간이 초과되기 전에 시간 제한을 설정합니다.

void SetODBCTimeout(short nODBCTimeout);

매개 변수

nODBCTimeout
쿼리 시간이 초과되기 전의 시간(초)입니다.

설명

이 멤버 함수를 사용하면 연결된 데이터 원본 "시간 초과"에 대한 후속 작업 전에 기본 시간(초)을 재정의할 수 있습니다. 네트워크 액세스 문제, 과도한 쿼리 처리 시간 등으로 인해 작업이 시간 초과될 수 있습니다. 쿼리 제한 시간 값을 변경하려면 이 querydef를 사용하여 쿼리를 실행하기 전에 호출 SetODBCTimeout 합니다. (ODBC에서 연결을 다시 사용할 때 시간 제한 값은 동일한 연결의 모든 클라이언트에 대해 동일합니다.)

쿼리 시간 제한의 기본값은 60초입니다.

CDaoQueryDef::SetParamValue

런타임에 querydef에서 매개 변수 값을 설정하려면 이 멤버 함수를 호출합니다.

virtual void SetParamValue(
    LPCTSTR lpszName,
    const COleVariant& varValue);

virtual void SetParamValue(
    int nIndex,
    const COleVariant& varValue);

매개 변수

lpszName
값을 설정할 매개 변수의 이름입니다.

varValue
설정할 값입니다. 은 비고를 참조하세요.

nIndex
querydef의 Parameters 컬렉션에 있는 매개 변수의 서수 위치입니다. GetParameterCountGetParameterInfo를 호출하여 이 값을 가져올 수 있습니다.

설명

매개 변수는 이미 querydef의 SQL 문자열의 일부로 설정되어야 합니다. 이름 또는 컬렉션의 서수 위치로 매개 변수에 액세스할 수 있습니다.

개체로 COleVariant 설정할 값을 지정합니다. 개체에서 원하는 값 및 형식을 설정하는 방법에 대한 자세한 내용은 COleVariant 클래스를 참조하세요COleVariant.

CDaoQueryDef::SetReturnsRecords

외부 데이터베이스에 대한 SQL 통과 쿼리를 설정하는 프로세스의 일부로 이 멤버 함수를 호출합니다.

void SetReturnsRecords(BOOL bReturnsRecords);

매개 변수

bReturnsRecords
외부 데이터베이스의 쿼리가 레코드를 반환하는 경우 TRUE를 전달합니다. 그렇지 않으면 FALSE입니다.

설명

이러한 경우 querydef를 만들고 다른 CDaoQueryDef 멤버 함수를 사용하여 해당 속성을 설정해야 합니다. 외부 데이터베이스에 대한 설명은 SetConnect를 참조하세요.

CDaoQueryDef::SetSQL

이 멤버 함수를 호출하여 querydef가 실행하는 SQL 문을 설정합니다.

void SetSQL(LPCTSTR lpszSQL);

매개 변수

lpszSQL
실행에 적합한 전체 SQL 문을 포함하는 문자열입니다. 이 문자열의 구문은 쿼리가 대상으로 하는 DBMS에 따라 달라집니다. Microsoft Jet 데이터베이스 엔진에서 사용되는 구문에 대한 자세한 내용은 DAO 도움말의 "코드에서 SQL 문 작성" 항목을 참조하세요.

설명

일반적으로 SQL 통과 쿼리에서 사용할 querydef 개체를 설정하는 것이 일반적 SetSQL 입니다. (대상 DBMS에 대한 SQL 통과 쿼리 구문은 DBMS에 대한 설명서를 참조하세요.)

참고 항목

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