CDaoQueryDef 클래스CDaoQueryDef Class

일반적으로 데이터베이스에 저장되는 쿼리 정의 또는 "querydef"를 나타냅니다.Represents a query definition, or "querydef," usually one saved in a database.

구문Syntax

class CDaoQueryDef : public CObject

멤버Members

Public 생성자Public Constructors

NameName 설명Description
CDaoQueryDef::CDaoQueryDefCDaoQueryDef::CDaoQueryDef CDaoQueryDef 개체를 생성합니다.Constructs a CDaoQueryDef object. 다음 호출 Open 또는 Create 요구 사항에 따라 또는입니다.Next call Open or Create, depending on your needs.

Public 메서드Public Methods

이름Name 설명Description
CDaoQueryDef:: AppendCDaoQueryDef::Append 쿼리 정의를 데이터베이스의 쿼리 정의 컬렉션에 저장 된 쿼리로 추가 합니다.Appends the querydef to the database's QueryDefs collection as a saved query.
CDaoQueryDef::CanUpdateCDaoQueryDef::CanUpdate 쿼리에서 데이터베이스를 업데이트할 수 있는 경우 0이 아닌 값을 반환 합니다.Returns nonzero if the query can update the database.
CDaoQueryDef:: CloseCDaoQueryDef::Close Querydef 개체를 닫습니다.Closes the querydef object. 완료 되 면 c + + 개체를 삭제 합니다.Destroy the C++ object when you finish with it.
CDaoQueryDef:: CreateCDaoQueryDef::Create 기본 DAO 쿼리 정의 개체를 만듭니다.Creates the underlying DAO querydef object. 쿼리 정의를 임시 쿼리로 사용 하거나를 호출 Append 하 여 데이터베이스에 저장 합니다.Use the querydef as a temporary query, or call Append to save it in the database.
CDaoQueryDef:: ExecuteCDaoQueryDef::Execute Querydef 개체로 정의 된 쿼리를 실행 합니다.Executes the query defined by the querydef object.
CDaoQueryDef:: GetConnectCDaoQueryDef::GetConnect Querydef와 연결 된 연결 문자열을 반환 합니다.Returns the connection string associated with the querydef. 연결 문자열은 데이터 원본을 식별 합니다.The connection string identifies the data source. SQL 통과 쿼리만 해당 하는 경우이 고, 그렇지 않으면 빈 문자열입니다.(For SQL pass-through queries only; otherwise an empty string.)
CDaoQueryDef::GetDateCreatedCDaoQueryDef::GetDateCreated 저장 된 쿼리를 만든 날짜를 반환 합니다.Returns the date the saved query was created.
CDaoQueryDef::GetDateLastUpdatedCDaoQueryDef::GetDateLastUpdated 저장 된 쿼리를 마지막으로 업데이트 한 날짜를 반환 합니다.Returns the date the saved query was last updated.
CDaoQueryDef:: GetFieldCountCDaoQueryDef::GetFieldCount Querydef에서 정의한 필드의 수를 반환 합니다.Returns the number of fields defined by the querydef.
CDaoQueryDef::GetFieldInfoCDaoQueryDef::GetFieldInfo 쿼리에 정의 된 지정 된 필드에 대 한 정보를 반환 합니다.Returns information about a specified field defined in the query.
CDaoQueryDef:: GetNameCDaoQueryDef::GetName Querydef의 이름을 반환 합니다.Returns the name of the querydef.
CDaoQueryDef::GetODBCTimeoutCDaoQueryDef::GetODBCTimeout 쿼리 정의가 실행 될 때 odbc (ODBC 쿼리의 경우)에서 사용 하는 제한 시간 값을 반환 합니다.Returns the timeout value used by ODBC (for an ODBC query) when the querydef is executed. 쿼리 작업이 완료 될 때까지 허용 되는 기간을 결정 합니다.This determines how long to allow for the query's action to complete.
CDaoQueryDef:: GetParameterCountCDaoQueryDef::GetParameterCount 쿼리에 대해 정의 된 매개 변수의 수를 반환 합니다.Returns the number of parameters defined for the query.
CDaoQueryDef:: GetParameterInfoCDaoQueryDef::GetParameterInfo 쿼리에 대해 지정 된 매개 변수에 대 한 정보를 반환 합니다.Returns information about a specified parameter to the query.
CDaoQueryDef::GetParamValueCDaoQueryDef::GetParamValue 쿼리에 대해 지정 된 매개 변수의 값을 반환 합니다.Returns the value of a specified parameter to the query.
CDaoQueryDef::GetRecordsAffectedCDaoQueryDef::GetRecordsAffected 작업 쿼리의 영향을 받는 레코드 수를 반환 합니다.Returns the number of records affected by an action query.
CDaoQueryDef::GetReturnsRecordsCDaoQueryDef::GetReturnsRecords Querydef에서 정의한 쿼리가 레코드를 반환 하는 경우 0이 아닌 값을 반환 합니다.Returns nonzero if the query defined by the querydef returns records.
CDaoQueryDef:: GetSQLCDaoQueryDef::GetSQL Querydef에서 정의한 쿼리를 지정 하는 SQL 문자열을 반환 합니다.Returns the SQL string that specifies the query defined by the querydef.
CDaoQueryDef:: GetTypeCDaoQueryDef::GetType 삭제, 업데이트, 추가, 테이블 작성 등 쿼리 유형을 반환 합니다.Returns the query type: delete, update, append, make-table, and so on.
CDaoQueryDef:: IsOpenCDaoQueryDef::IsOpen Querydef가 열려 있고 실행할 수 있는 경우 0이 아닌 값을 반환 합니다.Returns nonzero if the querydef is open and can be executed.
CDaoQueryDef:: OpenCDaoQueryDef::Open 데이터베이스의 쿼리 정의 컬렉션에 저장 된 기존 쿼리 정의를 엽니다.Opens an existing querydef stored in the database's QueryDefs collection.
CDaoQueryDef:: SetConnectCDaoQueryDef::SetConnect ODBC 데이터 원본에 대 한 SQL 통과 쿼리에 대 한 연결 문자열을 설정 합니다.Sets the connection string for a SQL pass-through query on an ODBC data source.
CDaoQueryDef:: SetNameCDaoQueryDef::SetName 쿼리 정의를 만들 때 사용 중인 이름을 바꿔서 저장 된 쿼리의 이름을 설정 합니다.Sets the name of the saved query, replacing the name in use when the querydef was created.
CDaoQueryDef:: SetODBCTimeoutCDaoQueryDef::SetODBCTimeout 쿼리 정의가 실행 될 때 odbc (ODBC 쿼리의 경우)에서 사용 하는 제한 시간 값을 설정 합니다.Sets the timeout value used by ODBC (for an ODBC query) when the querydef is executed.
CDaoQueryDef::SetParamValueCDaoQueryDef::SetParamValue 쿼리에 대해 지정 된 매개 변수의 값을 설정 합니다.Sets the value of a specified parameter to the query.
CDaoQueryDef::SetReturnsRecordsCDaoQueryDef::SetReturnsRecords Querydef가 레코드를 반환 하는지 여부를 지정 합니다.Specifies whether the querydef returns records. 이 특성을 TRUE로 설정 하는 것은 SQL 통과 쿼리에만 유효 합니다.Setting this attribute to TRUE is only valid for SQL pass-through queries.
CDaoQueryDef:: SetSQLCDaoQueryDef::SetSQL Querydef에서 정의한 쿼리를 지정 하는 SQL 문자열을 설정 합니다.Sets the SQL string that specifies the query defined by the querydef.

공용 데이터 멤버Public Data Members

NameName 설명Description
CDaoQueryDef:: m_pDAOQueryDefCDaoQueryDef::m_pDAOQueryDef 기본 DAO querydef 개체의 OLE 인터페이스에 대 한 포인터입니다.A pointer to the OLE interface for the underlying DAO querydef object.
CDaoQueryDef:: m_pDatabaseCDaoQueryDef::m_pDatabase Querydef가 연결 된 개체에 대 한 포인터 CDaoDatabase 입니다.A pointer to the CDaoDatabase object with which the querydef is associated. 쿼리 정의는 데이터베이스에 저장 될 수도 있고 그렇지 않을 수도 있습니다.The querydef might be saved in the database or not.

설명Remarks

Querydef는 쿼리를 설명 하는 SQL 문 및 해당 속성 (예: "작성일" 및 "ODBC Timeout")을 포함 하는 데이터 액세스 개체입니다.A querydef is a data access object that contains the SQL statement that describes a query, and its properties, such as "Date Created" and "ODBC Timeout." 임시 querydef 개체를 저장 하지 않고 만들 수도 있지만 자주 다시 사용 되는 쿼리를 데이터베이스에 저장 하는 것이 편리 하 고 훨씬 효율적입니다.You can also create temporary querydef objects without saving them, but it is convenient — and much more efficient — to save commonly reused queries in a database. CDaoDatabase 개체는 저장 된 쿼리를 포함 하는 쿼리 정의 컬렉션 이라는 컬렉션을 유지 관리 합니다.A CDaoDatabase object maintains a collection, called the QueryDefs collection, that contains its saved querydefs.

참고

DAO 데이터베이스 클래스는 ODBC (Open Database Connectivity)를 기반으로 하는 MFC 데이터베이스 클래스와는 다릅니다.The DAO database classes are distinct from the MFC database classes based on Open Database Connectivity (ODBC). 모든 DAO 데이터베이스 클래스 이름에는 "CDao" 접두사가 있습니다.All DAO database class names have the "CDao" prefix. 여전히 DAO 클래스를 사용 하 여 ODBC 데이터 원본에 액세스할 수 있습니다.You can still access ODBC data sources with the DAO classes. 일반적으로 DAO 기반의 MFC 클래스는 ODBC를 기반으로 하는 MFC 클래스 보다 더 사용할 수 있습니다. DAO 기반 클래스는 자체 데이터베이스 엔진을 통해 ODBC 드라이버를 포함 하 여 데이터에 액세스할 수 있습니다.In general, the MFC classes based on DAO are more capable than the MFC classes based on ODBC; the DAO-based classes can access data, including through ODBC drivers, via their own database engine. 또한 dao 기반 클래스는 DAO를 직접 호출 하지 않고도 클래스를 통해 테이블을 추가 하는 등의 DDL (데이터 정의 언어) 작업을 지원 합니다.The DAO-based classes also support Data Definition Language (DDL) operations, such as adding tables via the classes, without having to call DAO directly.

사용Usage

기존에 저장 된 쿼리로 작업 하거나 새 저장 된 쿼리 또는 임시 쿼리를 만들려면 쿼리 정의 개체를 사용 합니다.Use querydef objects either to work with an existing saved query or to create a new saved query or temporary query:

  1. 모든 경우에는 먼저 CDaoQueryDef 쿼리가 속한 CDaoDatabase 개체에 대 한 포인터를 제공 하 여 개체를 생성 합니다.In all cases, first construct a CDaoQueryDef object, supplying a pointer to the CDaoDatabase object to which the query belongs.

  2. 그런 다음 원하는 항목에 따라 다음을 수행 합니다.Then do the following, depending on what you want:

    • 기존에 저장 된 쿼리를 사용 하려면 저장 된 쿼리의 이름을 제공 하 여 querydef 개체의 Open 멤버 함수를 호출 합니다.To use an existing saved query, call the querydef object's Open member function, supplying the name of the saved query.

    • 새 저장 된 쿼리를 만들려면 쿼리 이름을 제공 하 여 querydef 개체의 create member 함수를 호출 합니다.To create a new saved query, call the querydef object's Create member function, supplying the name of the query. 그런 다음 Append 를 호출 하 여 쿼리를 데이터베이스의 쿼리 정의 컬렉션에 추가 하 여 쿼리를 저장 합니다.Then call Append to save the query by appending it to the database's QueryDefs collection. Create는 쿼리 정의를 열린 상태로 전환 하므로를 호출한 후에는를 Create 호출 하지 않습니다 Open .Create puts the querydef into an open state, so after calling Create you do not call Open.

    • 임시 querydef를 만들려면를 호출 Create 합니다.To create a temporary querydef, call Create. 쿼리 이름에 대해 빈 문자열을 전달 합니다.Pass an empty string for the query name. Append를 호출하지 마세요.Do not call Append.

Querydef 개체 사용을 마치면 Close 멤버 함수를 호출 합니다. 그런 다음 쿼리 정의 개체를 삭제 합니다.When you finish using a querydef object, call its Close member function; then destroy the querydef object.

저장 된 쿼리를 만드는 가장 쉬운 방법은이를 만들어 Microsoft Access를 사용 하 여 데이터베이스에 저장 하는 것입니다.The easiest way to create saved queries is to create them and store them in your database using Microsoft Access. 그런 다음 MFC 코드에서 열고 사용할 수 있습니다.Then you can open and use them in your MFC code.

Purposes

다음 용도로는 querydef 개체를 사용할 수 있습니다.You can use a querydef object for any of the following purposes:

  • 개체를 만들려면 CDaoRecordsetTo create a CDaoRecordset object

  • 개체의 멤버 함수를 호출 하 여 Execute 동작 쿼리 또는 SQL 통과 쿼리를 직접 실행 하려면To call the object's Execute member function to directly execute an action query or a SQL pass-through query

Select, action, 크로스탭, delete, update, append, 테이블 형식, 데이터 정의, SQL 통과, 공용 구조체 및 대량 쿼리를 비롯 한 모든 유형의 쿼리에 대해 querydef 개체를 사용할 수 있습니다.You can use a querydef object for any type of query, including select, action, crosstab, delete, update, append, make-table, data definition, SQL pass-through, union, and bulk queries. 쿼리 형식은 사용자가 제공 하는 SQL 문의 내용에 따라 결정 됩니다.The query's type is determined by the content of the SQL statement that you supply. 쿼리 유형에 대 한 자세한 내용은 ExecuteGetType 멤버 함수를 참조 하세요.For information about query types, see the Execute and GetType member functions. 레코드 집합은 일반적으로 SELECT ...를 사용 하 여 행을 반환 하는 쿼리에 사용 됩니다. ** FROM** 키워드.Recordsets are commonly used for row-returning queries, usually those using the SELECT ... FROM keywords. Execute는 대량 작업에 가장 일반적으로 사용 됩니다.Execute is most commonly used for bulk operations. 자세한 내용은 ExecuteCDaoRecordset을 참조 하세요.For more information, see Execute and CDaoRecordset.

쿼리 및 레코드 집합Querydefs and Recordsets

Querydef 개체를 사용 하 여 개체를 만들려면 CDaoRecordset 일반적으로 위에서 설명한 대로 쿼리를 만들거나 엽니다.To use a querydef object to create a CDaoRecordset object, you typically create or open a querydef as described above. 그런 다음 CDaoRecordset:: Open을 호출할 때 쿼리 정의 개체에 대 한 포인터를 전달 하 여 레코드 집합 개체를 생성 합니다.Then construct a recordset object, passing a pointer to your querydef object when you call CDaoRecordset::Open. 전달 하는 querydef는 열린 상태 여야 합니다.The querydef you pass must be in an open state. 자세한 내용은 클래스 CDaoRecordset를 참조 하세요.For more information, see class CDaoRecordset.

열 정의를 사용 하 여 열린 상태가 아닌 경우에는 레코드 집합을 만들 수 없습니다 (쿼리 정의에 가장 일반적으로 사용 됨).You cannot use a querydef to create a recordset (the most common use for a querydef) unless it is in an open state. 또는 중 하나를 호출 하 여 쿼리 정의를 열린 상태로 전환 합니다 Open Create .Put the querydef into an open state by calling either Open or Create.

외부 데이터베이스External Databases

쿼리 정의 개체는 외부 데이터베이스 엔진의 기본 SQL 언어를 사용 하는 기본 방법입니다.Querydef objects are the preferred way to use the native SQL dialect of an external database engine. 예를 들어 Microsoft SQL Server에 사용 되는 Transact-sql 쿼리를 만들고이를 querydef 개체에 저장할 수 있습니다.For example, you can create a Transact SQL query (as used on Microsoft SQL Server) and store it in a querydef object. Microsoft Jet 데이터베이스 엔진을 기반으로 하지 않는 SQL 쿼리를 사용 해야 하는 경우 외부 데이터 원본을 가리키는 연결 문자열을 제공 해야 합니다.When you need to use a SQL query not based on the Microsoft Jet database engine, you must provide a connection string that points to the external data source. 유효한 연결 문자열이 있는 쿼리는 데이터베이스 엔진을 무시 하 고 처리를 위해 쿼리를 외부 데이터베이스 서버에 직접 전달 합니다.Queries with valid connection strings bypass the database engine and pass the query directly to the external database server for processing.

ODBC 테이블로 작업 하는 기본 방법은 Microsoft Jet ()에 연결 하는 것입니다. MDB) 데이터베이스입니다.The preferred way to work with ODBC tables is to attach them to a Microsoft Jet (.MDB) database.

관련 정보는 DAO SDK의 "QueryDef 개체", "QueryDef 컬렉션" 및 "CdbDatabase 개체" 항목을 참조 하십시오.For related information, see the topics "QueryDef Object", "QueryDefs Collection", and "CdbDatabase Object" in the DAO SDK.

상속 계층 구조Inheritance Hierarchy

CObjectCObject

CDaoQueryDef

요구 사항Requirements

헤더: afxdaoHeader: afxdao.h

CDaoQueryDef:: AppendCDaoQueryDef::Append

Create 를 호출 하 여 새 querydef 개체를 만든 후이 멤버 함수를 호출 합니다.Call this member function after you call Create to create a new querydef object.

virtual void Append();

설명Remarks

Append데이터베이스의 쿼리 정의 컬렉션에 개체를 추가 하 여 쿼리 정의를 데이터베이스에 저장 합니다.Append saves the querydef in the database by appending the object to the database's QueryDefs collection. Querydef를 추가 하지 않고 임시 개체로 사용할 수 있지만 유지 하려면를 호출 해야 Append 합니다.You can use the querydef as a temporary object without appending it, but if you want it to persist, you must call Append.

임시 querydef 개체를 추가 하려고 하면 MFC에서 CDaoException형식의 예외를 throw 합니다.If you attempt to append a temporary querydef object, MFC throws an exception of type CDaoException.

CDaoQueryDef::CanUpdateCDaoQueryDef::CanUpdate

이 멤버 함수를 호출 하 여 이름 또는 SQL 문자열 변경과 같은 쿼리 정의를 수정할 수 있는지 여부를 확인 합니다.Call this member function to determine whether you can modify the querydef — such as changing its name or SQL string.

BOOL CanUpdate();

Return ValueReturn Value

Querydef를 수정할 수 있는 경우 0이 아닙니다. 그렇지 않으면 0입니다.Nonzero if you are permitted to modify the querydef; otherwise 0.

설명Remarks

다음과 같은 경우 쿼리 정의를 수정할 수 있습니다.You can modify the querydef if:

  • 읽기 전용으로 열려 있는 데이터베이스를 기반으로 하지 않습니다.It is not based on a database that is open read-only.

  • 데이터베이스에 대 한 업데이트 권한이 있습니다.You have update permissions for the database.

    이는 보안 기능을 구현 했는지 여부에 따라 달라 집니다.This depends on whether you have implemented security features. MFC는 보안에 대 한 지원을 제공 하지 않습니다. 직접 DAO를 호출 하거나 Microsoft Access를 사용 하 여 직접 구현 해야 합니다.MFC does not provide support for security; you must implement it yourself by calling DAO directly or by using Microsoft Access. DAO 도움말의 "사용 권한 속성" 항목을 참조 하십시오.See the topic "Permissions Property" in DAO Help.

CDaoQueryDef::CDaoQueryDefCDaoQueryDef::CDaoQueryDef

CDaoQueryDef 개체를 생성합니다.Constructs a CDaoQueryDef object.

CDaoQueryDef(CDaoDatabase* pDatabase);

매개 변수Parameters

pDatabasepDatabase
열린 CDaoDatabase 개체에 대 한 포인터입니다.A pointer to an open CDaoDatabase object.

설명Remarks

개체는 데이터베이스의 쿼리 정의 컬렉션에 저장 된 기존 쿼리 정의, 컬렉션에 저장할 새 쿼리 또는 저장 하지 않을 임시 쿼리를 나타낼 수 있습니다.The object can represent an existing querydef stored in the database's QueryDefs collection, a new query to be stored in the collection, or a temporary query, not to be stored. 다음 단계는 쿼리 정의의 유형에 따라 달라 집니다.Your next step depends on the type of querydef:

  • 개체가 기존 쿼리 정의를 나타내는 경우 개체의 Open 멤버 함수를 호출 하 여이를 초기화 합니다.If the object represents an existing querydef, call the object's Open member function to initialize it.

  • 개체가 저장할 새 쿼리 정의를 나타내는 경우 개체의 Create member 함수를 호출 합니다.If the object represents a new querydef to be saved, call the object's Create member function. 그러면 데이터베이스의 쿼리 정의 컬렉션에 개체가 추가 됩니다.This adds the object to the database's QueryDefs collection. 그런 다음 CDaoQueryDef 멤버 함수를 호출 하 여 개체의 특성을 설정 합니다.Then call CDaoQueryDef member functions to set the object's attributes. 마지막으로 Append를 호출 합니다.Finally, call Append.

  • 개체가 임시 쿼리 정의 (데이터베이스에 저장 하지 않음)를 나타내는 경우을 호출 하 여 Create 쿼리 이름에 대해 빈 문자열을 전달 합니다.If the object represents a temporary querydef (not to be saved in the database), call Create, passing an empty string for the query's name. 를 호출한 후에는 Create 해당 특성을 직접 설정 하 여 querydef를 초기화 합니다.After calling Create, initialize the querydef by directly setting its attributes. Append를 호출하지 마세요.Do not call Append.

Querydef의 특성을 설정 하려면 SetName, setsql, setsql, setodbctimeoutSetReturnsRecords 멤버 함수를 사용할 수 있습니다.To set the attributes of the querydef, you can use the SetName, SetSQL, SetConnect, SetODBCTimeout, and SetReturnsRecords member functions.

Querydef 개체가 완료 되 면 해당 Close 멤버 함수를 호출 합니다.When you finish with the querydef object, call its Close member function. 쿼리 정의에 대 한 포인터가 있는 경우 연산자를 사용 delete 하 여 c + + 개체를 제거 합니다.If you have a pointer to the querydef, use the delete operator to destroy the C++ object.

CDaoQueryDef:: CloseCDaoQueryDef::Close

Querydef 개체 사용을 마치면이 멤버 함수를 호출 합니다.Call this member function when you finish using the querydef object.

virtual void Close();

설명Remarks

Querydef를 닫으면 기본 DAO 개체가 해제 되지만 저장 된 DAO 쿼리 정의 개체 또는 c + + 개체는 삭제 되지 않습니다 CDaoQueryDef .Closing the querydef releases the underlying DAO object but does not destroy the saved DAO querydef object or the C++ CDaoQueryDef object. 이는 DAO의 데이터베이스의 쿼리 정의 컬렉션에서 쿼리를 삭제 하는 CDaoDatabase::D eletequerydef와 다릅니다 (임시 querydef가 아닌 경우).This is not the same as CDaoDatabase::DeleteQueryDef, which deletes the querydef from the database's QueryDefs collection in DAO (if not a temporary querydef).

CDaoQueryDef:: CreateCDaoQueryDef::Create

이 멤버 함수를 호출 하 여 새 저장 된 쿼리나 새 임시 쿼리를 만듭니다.Call this member function to create a new saved query or a new temporary query.

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

매개 변수Parameters

lpszNamelpszName
데이터베이스에 저장 된 쿼리의 고유한 이름입니다.The unique name of the query saved in the database. 문자열에 대 한 자세한 내용은 DAO 도움말에서 "CreateQueryDef 메서드" 항목을 참조 하십시오.For details about the string, see the topic "CreateQueryDef Method" in DAO Help. 기본값을 적용 하는 경우 빈 문자열은 임시 querydef가 만들어집니다.If you accept the default value, an empty string, a temporary querydef is created. 이러한 쿼리는 쿼리 정의 컬렉션에 저장 되지 않습니다.Such a query is not saved in the QueryDefs collection.

lpszSQLlpszSQL
쿼리를 정의 하는 SQL 문자열입니다.The SQL string that defines the query. 기본값 NULL을 허용 하는 경우 나중에 Setsql 을 호출 하 여 문자열을 설정 해야 합니다.If you accept the default value of NULL, you must later call SetSQL to set the string. 그때 까지는 쿼리가 정의 되지 않습니다.Until then, the query is undefined. 그러나 정의 되지 않은 쿼리를 사용 하 여 레코드 집합을 열 수 있습니다. 자세한 내용은 설명 부분을 참조 하십시오.You can, however, use the undefined query to open a recordset; see Remarks for details. 쿼리 정의를 쿼리 정의 컬렉션에 추가 하려면 먼저 SQL 문을 정의 해야 합니다.The SQL statement must be defined before you can append the querydef to the QueryDefs collection.

설명Remarks

LpszName에 이름을 전달 하는 경우 Append 를 호출 하 여 데이터베이스의 쿼리 정의 컬렉션에 쿼리 정의를 저장할 수 있습니다.If you pass a name in lpszName, you can then call Append to save the querydef in the database's QueryDefs collection. 그렇지 않으면 개체가 임시 querydef 이며 저장 되지 않습니다.Otherwise, the object is a temporary querydef and is not saved. 두 경우 모두 쿼리 정의는 열린 상태 이며이를 사용 하 여 CDaoRecordset 개체를 만들거나 Querydef의 Execute 멤버 함수를 호출할 수 있습니다.In either case, the querydef is in an open state, and you can either use it to create a CDaoRecordset object or call the querydef's Execute member function.

LpszSQL에 SQL 문을 제공 하지 않으면를 사용 하 여 쿼리를 실행할 수 Execute 없지만이를 사용 하 여 레코드 집합을 만들 수 있습니다.If you do not supply a SQL statement in lpszSQL, you cannot run the query with Execute but you can use it to create a recordset. 이 경우 MFC는 레코드 집합의 기본 SQL 문을 사용 합니다.In that case, MFC uses the recordset's default SQL statement.

CDaoQueryDef:: ExecuteCDaoQueryDef::Execute

이 멤버 함수를 호출 하 여 querydef 개체로 정의 된 쿼리를 실행 합니다.Call this member function to run the query defined by the querydef object.

virtual void Execute(int nOptions = dbFailOnError);

매개 변수Parameters

nOptionsnOptions
쿼리의 특성을 결정 하는 정수입니다.An integer that determines the characteristics of the query. 관련 내용은 DAO 도움말의 "메서드 실행" 항목을 참조 하십시오.For related information, see the topic "Execute Method" in DAO Help. 비트 or 연산자 ( |)를 사용 하 여이 인수에 대해 다음 상수를 결합할 수 있습니다.You can use the bitwise-OR operator ( |) to combine the following constants for this argument:

  • dbDenyWrite다른 사용자에 게 쓰기 권한을 거부 합니다.dbDenyWrite Deny write permission to other users.

  • dbInconsistent일관 되지 않은 업데이트dbInconsistent Inconsistent updates.

  • dbConsistent일관성 있는 업데이트.dbConsistent Consistent updates.

  • dbSQLPassThroughSQL 통과.dbSQLPassThrough SQL pass-through. SQL 문이 처리를 위해 ODBC 데이터베이스로 전달 되도록 합니다.Causes the SQL statement to be passed to an ODBC database for processing.

  • dbFailOnError기본값입니다.dbFailOnError Default value. 오류가 발생 하면 업데이트를 롤백하고 사용자에 게 오류를 보고 합니다.Roll back updates if an error occurs and report the error to the user.

  • dbSeeChanges다른 사용자가 편집 중인 데이터를 변경 하는 경우 런타임 오류를 생성 합니다.dbSeeChanges Generate a run-time error if another user is changing data you are editing.

참고

"일관성이 없는" 및 "일관적인" 용어에 대 한 설명은 DAO 도움말의 "메서드 실행" 항목을 참조 하십시오.For an explanation of the terms "inconsistent" and "consistent," see the topic "Execute Method" in DAO Help.

설명Remarks

이러한 방식으로 실행 하는 데 사용 되는 쿼리 정의 개체는 다음 쿼리 유형 중 하나만 나타낼 수 있습니다.Querydef objects used for execution in this manner can only represent one of the following query types:

  • 작업 쿼리Action queries

  • SQL 통과 쿼리SQL pass-through queries

Executeselect 쿼리와 같이 레코드를 반환 하는 쿼리에는 사용할 수 없습니다.Execute does not work for queries that return records, such as select queries. ExecuteUPDATE, INSERT또는 SELECT INTO와 같은 대량 작업 쿼리 또는 DDL (데이터 정의 언어) 작업에 일반적으로 사용 됩니다.Execute is commonly used for bulk operation queries, such as UPDATE, INSERT, or SELECT INTO, or for data definition language (DDL) operations.

ODBC 데이터 원본에 대 한 작업을 수행 하는 기본 방법은 Microsoft Jet (에 테이블을 연결 하는 것입니다. MDB) 데이터베이스입니다.The preferred way to work with ODBC data sources is to attach tables to a Microsoft Jet (.MDB) database. 자세한 내용은 DAO 도움말의 "DAO를 사용 하 여 외부 데이터베이스 액세스" 항목을 참조 하십시오.For more information, see the topic "Accessing External Databases with DAO" in DAO Help.

Querydef 개체의 GetRecordsAffected 멤버 함수를 호출 하 여 가장 최근 호출의 영향을 받는 레코드 수를 확인 합니다 Execute .Call the GetRecordsAffected member function of the querydef object to determine the number of records affected by the most recent Execute call. 예를 들어은 GetRecordsAffected 동작 쿼리를 실행할 때 삭제, 업데이트 또는 삽입 된 레코드 수에 대 한 정보를 반환 합니다.For example, GetRecordsAffected returns information about the number of records deleted, updated, or inserted when executing an action query. 연속 업데이트 또는 삭제가 적용 되는 경우 반환 되는 개수는 관련 테이블의 변경 내용을 반영 하지 않습니다.The count returned will not reflect changes in related tables when cascade updates or deletes are in effect.

및를 모두 포함 하는 경우 또는를 모두 포함 하는 경우 dbInconsistent dbConsistent 결과는 기본값입니다 dbInconsistent .If you include both dbInconsistent and dbConsistent or if you include neither, the result is the default, dbInconsistent.

Execute는 레코드 집합을 반환 하지 않습니다.Execute does not return a recordset. Execute레코드를 선택 하는 쿼리에서를 사용 하면 MFC에서 CDaoException형식의 예외를 throw 합니다.Using Execute on a query that selects records causes MFC to throw an exception of type CDaoException.

CDaoQueryDef:: GetConnectCDaoQueryDef::GetConnect

이 멤버 함수를 호출 하 여 querydef의 데이터 소스와 연결 된 연결 문자열을 가져옵니다.Call this member function to get the connection string associated with the querydef's data source.

CString GetConnect();

Return ValueReturn Value

쿼리 정의에 대 한 연결 문자열을 포함 하는 CString 입니다.A CString containing the connection string for the querydef.

설명Remarks

이 함수는 ODBC 데이터 원본 및 특정 ISAM 드라이버 에서만 사용 됩니다.This function is used only with ODBC data sources and certain ISAM drivers. Microsoft Jet ()와 함께 사용 되지 않습니다. MDB) 데이터베이스 이 경우는 GetConnect 빈 문자열을 반환 합니다.It is not used with Microsoft Jet (.MDB) databases; in this case, GetConnect returns an empty string. 자세한 내용은 Setconnect를 참조 하세요.For more information, see SetConnect.

ODBC 테이블로 작업 하는 기본 방법은에 연결 하는 것입니다. MDB 데이터베이스.The preferred way to work with ODBC tables is to attach them to an .MDB database. 자세한 내용은 DAO 도움말의 "DAO를 사용 하 여 외부 데이터베이스 액세스" 항목을 참조 하십시오.For more information, see the topic "Accessing External Databases with DAO" in DAO Help.

연결 문자열에 대 한 자세한 내용은 DAO 도움말의 "연결 속성" 항목을 참조 하십시오.For information about connection strings, see the topic "Connect Property" in DAO Help.

CDaoQueryDef::GetDateCreatedCDaoQueryDef::GetDateCreated

이 멤버 함수를 호출 하 여 querydef 개체가 만들어진 날짜를 가져옵니다.Call this member function to get the date the querydef object was created.

COleDateTime GetDateCreated();

Return ValueReturn Value

Querydef를 만든 날짜와 시간을 포함 하는 COleDateTime 개체입니다.A COleDateTime object containing the date and time the querydef was created.

설명Remarks

관련 내용은 DAO 도움말에서 "DateCreated, LastUpdated 속성" 항목을 참조 하십시오.For related information, see the topic "DateCreated, LastUpdated Properties" in DAO Help.

CDaoQueryDef::GetDateLastUpdatedCDaoQueryDef::GetDateLastUpdated

해당 속성 (예: 이름, SQL 문자열 또는 연결 문자열)이 변경 된 경우이 멤버 함수를 호출 하 여 querydef 개체가 마지막으로 업데이트 된 날짜를 가져옵니다.Call this member function to get the date the querydef object was last updated — when any of its properties were changed, such as its name, its SQL string, or its connection string.

COleDateTime GetDateLastUpdated();

Return ValueReturn Value

Querydef가 마지막으로 업데이트 된 날짜와 시간을 포함 하는 COleDateTime 개체입니다.A COleDateTime object containing the date and time the querydef was last updated.

설명Remarks

관련 내용은 DAO 도움말에서 "DateCreated, LastUpdated 속성" 항목을 참조 하십시오.For related information, see the topic "DateCreated, LastUpdated Properties" in DAO Help.

CDaoQueryDef:: GetFieldCountCDaoQueryDef::GetFieldCount

쿼리에서 필드 수를 검색 하려면이 멤버 함수를 호출 합니다.Call this member function to retrieve the number of fields in the query.

short GetFieldCount();

Return ValueReturn Value

쿼리에 정의 된 필드 수입니다.The number of fields defined in the query.

설명Remarks

GetFieldCount는 querydef의 모든 필드를 반복 하는 데 유용 합니다.GetFieldCount is useful for looping through all fields in the querydef. 이러한 목적을 위해 GetFieldCount getfieldinfo와 함께를 사용 합니다.For that purpose, use GetFieldCount in conjunction with GetFieldInfo.

CDaoQueryDef:: GetFieldInfoCDaoQueryDef::GetFieldInfo

이 멤버 함수를 호출 하 여 querydef에 정의 된 필드에 대 한 다양 한 종류의 정보를 가져옵니다.Call this member function to obtain various kinds of information about a field defined in the 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);

매개 변수Parameters

nIndexnIndex
인덱스를 기준으로 조회 하기 위해 querydef의 Fields 컬렉션에서 원하는 필드의 인덱스 (0부터 시작)입니다.The zero-based index of the desired field in the querydef's Fields collection, for lookup by index.

fieldinfofieldinfo
CDaoFieldInfo요청 된 정보를 반환 하는 개체에 대 한 참조입니다.A reference to a CDaoFieldInfo object that returns the information requested.

dwInfoOptionsdwInfoOptions
검색할 필드에 대 한 정보를 지정 하는 옵션입니다.Options that specify which information about the field to retrieve. 사용할 수 있는 옵션은 함수에서 반환 하는 작업과 함께 여기에 나열 됩니다.The available options are listed here along with what they cause the function to return:

  • AFX_DAO_PRIMARY_INFO (기본값) 이름, 형식, 크기, 특성AFX_DAO_PRIMARY_INFO (Default) Name, Type, Size, Attributes

  • AFX_DAO_SECONDARY_INFO 기본 정보 더하기: 서 수 위치, 필수, 0 길이 허용, 원본 필드, 외래 이름, 원본 테이블, 정렬 순서AFX_DAO_SECONDARY_INFO Primary information plus: Ordinal Position, Required, Allow Zero Length, Source Field, Foreign Name, Source Table, Collating Order

  • 기본 및 보조 정보와 AFX_DAO_ALL_INFO 기본값, 유효성 검사 텍스트, 유효성 검사 규칙을 추가 합니다.AFX_DAO_ALL_INFO Primary and secondary information plus: Default Value, Validation Text, Validation Rule

lpszNamelpszName
이름으로 조회 하기 위해 원하는 필드의 이름을 포함 하는 문자열입니다.A string containing the name of the desired field, for lookup by name. CString을 사용할 수 있습니다.You can use a CString.

설명Remarks

Fieldinfo에 반환 되는 정보에 대 한 설명은 CDaoFieldInfo 구조체를 참조 하세요.For a description of the information returned in fieldinfo, see the CDaoFieldInfo structure. 이 구조에는 위의 Dwinfooptions 에 설명 된 정보에 해당 하는 멤버가 있습니다.This structure has members that correspond to the descriptive information under dwInfoOptions above. 한 수준의 정보를 요청 하는 경우 모든 이전 수준의 정보를 얻을 수 있습니다.If you request one level of information, you get any prior levels of information as well.

CDaoQueryDef:: GetNameCDaoQueryDef::GetName

이 멤버 함수를 호출 하 여 querydef가 나타내는 쿼리 이름을 검색 합니다.Call this member function to retrieve the name of the query represented by the querydef.

CString GetName();

Return ValueReturn Value

쿼리의 이름입니다.The name of the query.

설명Remarks

Querydef 이름은 고유한 사용자 정의 이름입니다.Querydef names are unique user-defined names. 쿼리 정의 이름에 대 한 자세한 내용은 DAO 도움말의 "이름 속성" 항목을 참조 하십시오.For more information about querydef names, see the topic "Name Property" in DAO Help.

CDaoQueryDef::GetODBCTimeoutCDaoQueryDef::GetODBCTimeout

ODBC 데이터 원본에 대 한 쿼리 시간이 초과 되기 전에 현재 시간 제한을 검색 하려면이 멤버 함수를 호출 합니다.Call this member function to retrieve the current time limit before a query to an ODBC data source times out.

short GetODBCTimeout();

Return ValueReturn Value

쿼리 시간이 초과될 때까지 걸리는 시간(초)입니다.The number of seconds before a query times out.

설명Remarks

이 시간 제한에 대 한 자세한 내용은 DAO 도움말의 "ODBCTimeout 속성" 항목을 참조 하십시오.For information about this time limit, see the topic "ODBCTimeout Property" in DAO Help.

ODBC 테이블로 작업 하는 기본 방법은 Microsoft Jet ()에 연결 하는 것입니다. MDB) 데이터베이스입니다.The preferred way to work with ODBC tables is to attach them to a Microsoft Jet (.MDB) database. 자세한 내용은 DAO 도움말의 "DAO를 사용 하 여 외부 데이터베이스 액세스" 항목을 참조 하십시오.For more information, see the topic "Accessing External Databases with DAO" in DAO Help.

CDaoQueryDef:: GetParameterCountCDaoQueryDef::GetParameterCount

이 멤버 함수를 호출 하 여 저장 된 쿼리의 매개 변수 수를 검색 합니다.Call this member function to retrieve the number of parameters in the saved query.

short GetParameterCount();

Return ValueReturn Value

쿼리에 정의 된 매개 변수의 수입니다.The number of parameters defined in the query.

설명Remarks

GetParameterCount는 쿼리 정의의 모든 매개 변수를 반복 하는 데 유용 합니다.GetParameterCount is useful for looping through all parameters in the querydef. 이러한 목적을 위해 GetParameterCount GetParameterInfo와 함께를 사용 합니다.For that purpose, use GetParameterCount in conjunction with GetParameterInfo.

관련 정보는 DAO 도움말의 "매개 변수 개체", "매개 변수 컬렉션" 및 "매개 변수 선언 (SQL)" 항목을 참조 하십시오.For related information, see the topics "Parameter Object", "Parameters Collection", and "PARAMETERS Declaration (SQL)" in DAO Help.

CDaoQueryDef:: GetParameterInfoCDaoQueryDef::GetParameterInfo

이 멤버 함수를 호출 하 여 querydef에 정의 된 매개 변수에 대 한 정보를 가져옵니다.Call this member function to obtain information about a parameter defined in the querydef.

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

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

매개 변수Parameters

nIndexnIndex
인덱스를 기준으로 조회 하기 위해 querydef의 Parameters 컬렉션에서 원하는 매개 변수의 인덱스 (0부터 시작)입니다.The zero-based index of the desired parameter in the querydef's Parameters collection, for lookup by index.

paraminfoparaminfo
요청 된 정보를 반환 하는 CDaoParameterInfo 개체에 대 한 참조입니다.A reference to a CDaoParameterInfo object that returns the information requested.

dwInfoOptionsdwInfoOptions
검색할 매개 변수에 대 한 정보를 지정 하는 옵션입니다.Options that specify which information about the parameter to retrieve. 사용할 수 있는 옵션은 함수에서 반환 하는 항목과 함께 여기에 나열 됩니다.The available option is listed here along with what it causes the function to return:

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

lpszNamelpszName
이름으로 조회 하기 위해 원하는 매개 변수의 이름을 포함 하는 문자열입니다.A string containing the name of the desired parameter, for lookup by name. CString을 사용할 수 있습니다.You can use a CString.

설명Remarks

Paraminfo에 반환 되는 정보에 대 한 설명은 CDaoParameterInfo 구조체를 참조 하세요.For a description of the information returned in paraminfo, see the CDaoParameterInfo structure. 이 구조에는 위의 Dwinfooptions 에 설명 된 정보에 해당 하는 멤버가 있습니다.This structure has members that correspond to the descriptive information under dwInfoOptions above.

관련 내용은 DAO 도움말의 "PARAMETERS 선언 (SQL)" 항목을 참조 하십시오.For related information, see the topic "PARAMETERS Declaration (SQL)" in DAO Help.

CDaoQueryDef::GetParamValueCDaoQueryDef::GetParamValue

이 멤버 함수를 호출 하 여 querydef의 Parameters 컬렉션에 저장 된 지정 된 매개 변수의 현재 값을 검색 합니다.Call this member function to retrieve the current value of the specified parameter stored in the querydef's Parameters collection.

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

매개 변수Parameters

lpszNamelpszName
이름을 기준으로 조회 하는 데 사용할 값이 있는 매개 변수의 이름입니다.The name of the parameter whose value you want, for lookup by name.

nIndexnIndex
인덱스를 기준으로 조회 하기 위해 querydef의 Parameters 컬렉션에 있는 매개 변수의 인덱스 (0부터 시작)입니다.The zero-based index of the parameter in the querydef's Parameters collection, for lookup by index. GetparametercountGetParameterInfo에 대 한 호출을 사용 하 여이 값을 가져올 수 있습니다.You can obtain this value with calls to GetParameterCount and GetParameterInfo.

Return ValueReturn Value

매개 변수의 값을 포함 하는 COleVariant 클래스의 개체입니다.An object of class COleVariant that contains the parameter's value.

설명Remarks

이름 또는 컬렉션의 서 수 위치를 기준으로 매개 변수에 액세스할 수 있습니다.You can access the parameter either by name or by its ordinal position in the collection.

관련 내용은 DAO 도움말의 "PARAMETERS 선언 (SQL)" 항목을 참조 하십시오.For related information, see the topic "PARAMETERS Declaration (SQL)" in DAO Help.

CDaoQueryDef::GetRecordsAffectedCDaoQueryDef::GetRecordsAffected

이 멤버 함수를 호출 하 여 마지막 실행호출의 영향을 받은 레코드 수를 확인 합니다.Call this member function to determine how many records were affected by the last call of Execute.

long GetRecordsAffected();

Return ValueReturn Value

영향을 받은 레코드 수입니다.The number of records affected.

설명Remarks

연속 업데이트 또는 삭제가 적용 되는 경우 반환 되는 개수는 관련 테이블의 변경 내용을 반영 하지 않습니다.The count returned will not reflect changes in related tables when cascade updates or deletes are in effect.

관련 정보는 DAO 도움말의 "RecordsAffected 속성" 항목을 참조 하십시오.For related information see the topic "RecordsAffected Property" in DAO Help.

CDaoQueryDef::GetReturnsRecordsCDaoQueryDef::GetReturnsRecords

이 멤버 함수를 호출 하 여 쿼리 정의가 레코드를 반환 하는 쿼리를 기반으로 하는지 여부를 확인 합니다.Call this member function to determine whether the querydef is based on a query that returns records.

BOOL GetReturnsRecords();

Return ValueReturn Value

Querydef가 레코드를 반환 하는 쿼리를 기반으로 하는 경우 0이 아닙니다. 그렇지 않으면 0입니다.Nonzero if the querydef is based on a query that returns records; otherwise 0.

설명Remarks

이 멤버 함수는 SQL 통과 쿼리에만 사용 됩니다.This member function is only used for SQL pass-through queries. SQL 쿼리에 대 한 자세한 내용은 Execute member 함수를 참조 하세요.For more information about SQL queries, see the Execute member function. SQL 통과 쿼리를 사용 하는 방법에 대 한 자세한 내용은 SetReturnsRecords 멤버 함수를 참조 하세요.For more information about working with SQL pass-through queries, see the SetReturnsRecords member function.

관련 내용은 DAO 도움말의 "ReturnsRecords 속성" 항목을 참조 하십시오.For related information, see the topic "ReturnsRecords Property" in DAO Help.

CDaoQueryDef:: GetSQLCDaoQueryDef::GetSQL

이 멤버 함수를 호출 하 여 querydef의 기반이 되는 쿼리를 정의 하는 SQL 문을 검색 합니다.Call this member function to retrieve the SQL statement that defines the query on which the querydef is based.

CString GetSQL();

Return ValueReturn Value

Querydef의 기반이 되는 쿼리를 정의 하는 SQL 문입니다.The SQL statement that defines the query on which the querydef is based.

설명Remarks

그러면 키워드, 테이블 이름 등의 문자열을 구문 분석할 수 있습니다.You will then probably parse the string for keywords, table names, and so on.

관련 내용은 DAO 도움말의 "SQL 속성", "Microsoft Jet 데이터베이스 엔진 SQL 및 ANSI SQL의 비교" 및 "코드에서 SQL을 사용 하 여 데이터베이스 쿼리" 항목을 참조 하십시오.For related information, see the topics "SQL Property", "Comparison of Microsoft Jet Database Engine SQL and ANSI SQL", and "Querying a Database with SQL in Code" in DAO Help.

CDaoQueryDef:: GetTypeCDaoQueryDef::GetType

이 멤버 함수를 호출 하 여 쿼리 정의의 쿼리 유형을 결정 합니다.Call this member function to determine the query type of the querydef.

short GetType();

Return ValueReturn Value

Querydef에서 정의한 쿼리 유형입니다.The type of the query defined by the querydef. 값은 주의를 참조 하세요.For values, see Remarks.

설명Remarks

쿼리 형식은 쿼리 정의를 만들거나 기존 querydef의 setsql 멤버 함수를 호출할 때 QUERYDEF의 SQL 문자열에 지정 하는 내용에 의해 설정 됩니다.The query type is set by what you specify in the querydef's SQL string when you create the querydef or call an existing querydef's SetSQL member function. 이 함수에서 반환 하는 쿼리 형식은 다음 값 중 하나일 수 있습니다.The query type returned by this function can be one of the following values:

  • dbQSelect[dbQSelect Select

  • dbQAction 동작dbQAction Action

  • dbQCrosstab세부dbQCrosstab Crosstab

  • dbQDelete DeletedbQDelete Delete

  • dbQUpdate UpdatedbQUpdate Update

  • dbQAppend추가할dbQAppend Append

  • dbQMakeTable테이블 만들기dbQMakeTable Make-table

  • dbQDDL데이터 정의dbQDDL Data-definition

  • dbQSQLPassThrough통과dbQSQLPassThrough Pass-through

  • dbQSetOperation부분dbQSetOperation Union

  • dbQSPTBulk에서 dbQSQLPassThrough 레코드를 반환 하지 않는 쿼리를 지정 하는 데 사용 됩니다.dbQSPTBulk Used with dbQSQLPassThrough to specify a query that does not return records.

참고

SQL 통과 쿼리를 만들려면 상수를 설정 하지 마십시오 dbSQLPassThrough .To create a SQL pass-through query, don't set the dbSQLPassThrough constant. 이는 querydef 개체를 만들고 연결 문자열을 설정할 때 Microsoft Jet 데이터베이스 엔진에 의해 자동으로 설정 됩니다.This is set automatically by the Microsoft Jet database engine when you create a querydef object and set the connection string.

SQL 문자열에 대 한 자세한 내용은 Getsql을 참조 하세요.For information about SQL strings, see GetSQL. 쿼리 유형에 대 한 자세한 내용은 Execute를 참조 하십시오.For information about query types, see Execute.

CDaoQueryDef:: IsOpenCDaoQueryDef::IsOpen

이 멤버 함수를 호출 하 여 개체가 현재 열려 있는지 여부를 확인 CDaoQueryDef 합니다.Call this member function to determine whether the CDaoQueryDef object is currently open.

BOOL IsOpen() const;

Return ValueReturn Value

개체가 현재 열려 있으면 0이 아니고 CDaoQueryDef , 그렇지 않으면 0입니다.Nonzero if the CDaoQueryDef object is currently open; otherwise 0.

설명Remarks

Querydef를 사용 하 여 Execute 를 호출 하거나 CDaoRecordset 개체를 만들려면 먼저 querydef가 열린 상태 여야 합니다.A querydef must be in an open state before you use it to call Execute or to create a CDaoRecordset object. Open (새 querydef의 경우) 또는 open (기존 쿼리 정의의 경우 ) 중 하나 를 열린 상태 호출에 삽입 합니다.To put a querydef into an open state call either Create (for a new querydef) or Open (for an existing querydef).

CDaoQueryDef:: m_pDatabaseCDaoQueryDef::m_pDatabase

Querydef 개체와 연결 된 CDaoDatabase 개체에 대 한 포인터를 포함 합니다.Contains a pointer to the CDaoDatabase object associated with the querydef object.

설명Remarks

데이터베이스에 직접 액세스 해야 하는 경우 (예: 데이터베이스의 컬렉션에 있는 다른 쿼리 정의 또는 레코드 집합 개체에 대 한 포인터를 얻기 위해)이 포인터를 사용 합니다.Use this pointer if you need to access the database directly — for example, to obtain pointers to other querydef or recordset objects in the database's collections.

CDaoQueryDef:: m_pDAOQueryDefCDaoQueryDef::m_pDAOQueryDef

기본 DAO querydef 개체의 OLE 인터페이스에 대 한 포인터를 포함 합니다.Contains a pointer to the OLE interface for the underlying DAO querydef object.

설명Remarks

이 포인터는 다른 클래스와의 완전성 및 일관성을 위해 제공 됩니다.This pointer is provided for completeness and consistency with the other classes. 그러나 MFC는 DAO 쿼리 정의를 완전히 캡슐화 하기 때문에 필요 하지 않습니다.However, because MFC rather fully encapsulates DAO querydefs, you are unlikely to need it. 이를 사용 하는 경우 주의 해야 합니다. 특히, 수행 하 고 있는 작업을 알고 있지 않으면 포인터 값을 변경 하지 마십시오.If you do use it, do so cautiously — in particular, do not change the value of the pointer unless you know what you are doing.

CDaoQueryDef:: OpenCDaoQueryDef::Open

이 멤버 함수를 호출 하 여 이전에 데이터베이스의 쿼리 정의 컬렉션에 저장 된 쿼리 정의를 엽니다.Call this member function to open a querydef previously saved in the database's QueryDefs collection.

virtual void Open(LPCTSTR lpszName = NULL);

매개 변수Parameters

lpszNamelpszName
열려는 저장 된 쿼리 정의의 이름을 포함 하는 문자열입니다.A string that contains the name of the saved querydef to open. CString을 사용할 수 있습니다.You can use a CString.

설명Remarks

Querydef가 열리면 해당 Execute 멤버 함수를 호출 하거나 querydef를 사용 하 여 CDaoRecordset 개체를 만들 수 있습니다.Once the querydef is open, you can call its Execute member function or use the querydef to create a CDaoRecordset object.

CDaoQueryDef:: SetConnectCDaoQueryDef::SetConnect

이 멤버 함수를 호출 하 여 querydef 개체의 연결 문자열을 설정 합니다.Call this member function to set the querydef object's connection string.

void SetConnect(LPCTSTR lpszConnect);

매개 변수Parameters

lpszConnectlpszConnect
연결 된 CDaoDatabase 개체에 대 한 연결 문자열을 포함 하는 문자열입니다.A string that contains a connection string for the associated CDaoDatabase object.

설명Remarks

연결 문자열은 필요에 따라 ODBC 및 특정 ISAM 드라이버에 추가 정보를 전달 하는 데 사용 됩니다.The connection string is used to pass additional information to ODBC and certain ISAM drivers as needed. Microsoft Jet ()에는 사용 되지 않습니다. MDB) 데이터베이스.It is not used for Microsoft Jet (.MDB) databases.

ODBC 테이블로 작업 하는 기본 방법은에 연결 하는 것입니다. MDB 데이터베이스.The preferred way to work with ODBC tables is to attach them to an .MDB database.

ODBC 데이터 원본에 대 한 SQL 통과 쿼리를 나타내는 querydef를 실행 하기 전에 연결 문자열을로 설정 하 SetConnectSetReturnsRecords 를 호출 하 여 쿼리가 레코드를 반환 하는지 여부를 지정 합니다.Before executing a querydef that represents a SQL pass-through query to an ODBC data source, set the connection string with SetConnect and call SetReturnsRecords to specify whether the query returns records.

연결 문자열의 구조와 연결 문자열 구성 요소의 예에 대 한 자세한 내용은 DAO 도움말의 "연결 속성" 항목을 참조 하십시오.For more information about the connection string's structure and examples of connection string components, see the topic "Connect Property" in DAO Help.

CDaoQueryDef:: SetNameCDaoQueryDef::SetName

임시가 아닌 querydef의 이름을 변경 하려면이 멤버 함수를 호출 합니다.Call this member function if you want to change the name of a querydef that is not temporary.

void SetName(LPCTSTR lpszName);

매개 변수Parameters

lpszNamelpszName
연결 된 CDaoDatabase 개체의 임시 쿼리가 아닌 새 이름을 포함 하는 문자열입니다.A string that contains the new name for a nontemporary query in the associated CDaoDatabase object.

설명Remarks

Querydef 이름은 고유한 사용자 정의 이름입니다.Querydef names are unique, user-defined names. SetNameQuerydef 개체를 쿼리 정의 컬렉션에 추가 하기 전에를 호출할 수 있습니다.You can call SetName before the querydef object is appended to the QueryDefs collection.

CDaoQueryDef:: SetODBCTimeoutCDaoQueryDef::SetODBCTimeout

이 멤버 함수를 호출 하 여 ODBC 데이터 원본에 대 한 쿼리가 시간 초과 되기 전의 시간 제한을 설정 합니다.Call this member function to set the time limit before a query to an ODBC data source times out.

void SetODBCTimeout(short nODBCTimeout);

매개 변수Parameters

nODBCTimeoutnODBCTimeout
쿼리 시간이 초과될 때까지 걸리는 시간(초)입니다.The number of seconds before a query times out.

설명Remarks

이 멤버 함수를 사용 하면 연결 된 데이터 원본에 대 한 후속 작업의 "제한 시간"을 기준으로 기본 시간 (초)을 재정의할 수 있습니다.This member function lets you override the default number of seconds before subsequent operations on the connected data source "time out." 네트워크 액세스 문제, 과도 한 쿼리 처리 시간 등으로 인해 작업 시간이 초과 될 수 있습니다.An operation might time out due to network access problems, excessive query processing time, and so on. SetODBCTimeout쿼리 제한 시간 값을 변경 하려는 경우이 querydef를 사용 하 여 쿼리를 실행 하기 전에를 호출 합니다.Call SetODBCTimeout prior to executing a query with this querydef if you want to change the query timeout value. ODBC가 연결을 다시 사용할 때 동일한 연결의 모든 클라이언트에 대 한 시간 제한 값은 동일 합니다.(As ODBC reuses connections, the timeout value is the same for all clients on the same connection.)

쿼리 시간 제한의 기본값은 60 초입니다.The default value for query timeouts is 60 seconds.

CDaoQueryDef::SetParamValueCDaoQueryDef::SetParamValue

런타임에 쿼리 정의의 매개 변수 값을 설정 하려면이 멤버 함수를 호출 합니다.Call this member function to set the value of a parameter in the querydef at run time.

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

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

매개 변수Parameters

lpszNamelpszName
값을 설정 하려는 매개 변수의 이름입니다.The name of the parameter whose value you want to set.

varValuevarValue
설정할 값입니다. 설명을 참조 하세요.The value to set; see Remarks.

nIndexnIndex
Querydef의 Parameters 컬렉션에 있는 매개 변수의 서 수 위치입니다.The ordinal position of the parameter in the querydef's Parameters collection. GetparametercountGetParameterInfo에 대 한 호출을 사용 하 여이 값을 가져올 수 있습니다.You can obtain this value with calls to GetParameterCount and GetParameterInfo.

설명Remarks

매개 변수가 이미 querydef의 SQL 문자열의 일부로 설정 되어 있어야 합니다.The parameter must already have been established as part of the querydef's SQL string. 이름 또는 컬렉션의 서 수 위치를 기준으로 매개 변수에 액세스할 수 있습니다.You can access the parameter either by name or by its ordinal position in the collection.

개체로 설정할 값을 지정 합니다 COleVariant .Specify the value to set as a COleVariant object. 개체에서 원하는 값 및 형식을 설정 하는 방법에 대 한 자세한 내용은 COleVariant 클래스 COleVariant를 참조 하세요.For information about setting the desired value and type in your COleVariant object, see class COleVariant.

CDaoQueryDef::SetReturnsRecordsCDaoQueryDef::SetReturnsRecords

외부 데이터베이스에 대 한 SQL 통과 쿼리를 설정 하는 프로세스의 일부로이 멤버 함수를 호출 합니다.Call this member function as part of the process of setting up a SQL pass-through query to an external database.

void SetReturnsRecords(BOOL bReturnsRecords);

매개 변수Parameters

bReturnsRecordsbReturnsRecords
외부 데이터베이스에 대 한 쿼리에서 레코드를 반환 하는 경우 TRUE를 전달 합니다. 그렇지 않으면 FALSE입니다.Pass TRUE if the query on an external database returns records; otherwise, FALSE.

설명Remarks

이러한 경우에는 쿼리 정의를 만들고 다른 멤버 함수를 사용 하 여 해당 속성을 설정 해야 합니다 CDaoQueryDef .In such a case, you must create the querydef and set its properties using other CDaoQueryDef member functions. 외부 데이터베이스에 대 한 설명은 Setconnect를 참조 하세요.For a description of external databases, see SetConnect.

CDaoQueryDef:: SetSQLCDaoQueryDef::SetSQL

이 멤버 함수를 호출 하 여 querydef가 실행 하는 SQL 문을 설정 합니다.Call this member function to set the SQL statement that the querydef executes.

void SetSQL(LPCTSTR lpszSQL);

매개 변수Parameters

lpszSQLlpszSQL
실행에 적합 한 전체 SQL 문을 포함 하는 문자열입니다.A string containing a complete SQL statement, suitable for execution. 이 문자열의 구문은 쿼리에서 대상으로 하는 DBMS에 따라 다릅니다.The syntax of this string depends on the DBMS that your query targets. Microsoft Jet 데이터베이스 엔진에서 사용 하는 구문에 대 한 설명은 DAO 도움말의 "코드에서 SQL 문 작성" 항목을 참조 하십시오.For a discussion of syntax used in the Microsoft Jet database engine, see the topic "Building SQL Statements in Code" in DAO Help.

설명Remarks

의 일반적인 용도는 SetSQL SQL 통과 쿼리에서 사용할 쿼리 정의 개체를 설정 하는 것입니다.A typical use of SetSQL is setting up a querydef object for use in a SQL pass-through query. 대상 DBMS에 대 한 SQL 통과 쿼리의 구문은 DBMS에 대 한 설명서를 참조 하세요.(For the syntax of SQL pass-through queries on your target DBMS, see the documentation for your DBMS.)

참고 항목See also

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