레코드 필드 교환 함수
이 항목에서는 레코드 집합 개체와 해당 데이터 소스 간의 데이터 전송을 자동화하고 데이터에 대한 다른 작업을 수행하는 데 사용되는 레코드 필드 교환(RFX, 대량 RFX, 및 DFX) 함수를 나열합니다.
ODBC 기반 클래스를 사용하고 대량 행 페치를 구현한 경우 데이터 소스 열에 해당하는 각 데이터 멤버에 대해 대량 RFX 함수를 호출하여 DoBulkFieldExchange
의 CRecordset
멤버 함수를 수동으로 재정의해야 합니다.
ODBC 기반 클래스에서 대량 행 페치를 구현하지 않았거나 DAO 기반 클래스(사용되지 않음)를 사용하는 경우 ClassWizard는 레코드 집합의 각 필드 데이터 멤버에 대해 RFX 함수(ODBC 클래스의 경우) 또는 DFX 함수(DAO 클래스)를 호출하여 멤버 함수를 재정 DoFieldExchange
의 CRecordset
CDaoRecordset
합니다.
레코드 필드 교환 함수는 프레임워크에서 DoFieldExchange
또는 DoBulkFieldExchange
를 호출할 때마다 데이터를 전송합니다. 각 함수는 특정 데이터 형식을 전송합니다.
이러한 함수의 사용 방법에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식(ODBC)문서를 참조하세요. 대량 행 페치에 대한 자세한 내용은 레코드 집합: 대량 레코드 페치(ODBC)문서를 참조하세요.
동적으로 바인딩하는 데이터 열의 경우 레코드 집합: 데이터 열 동적 바인딩 (ODBC)문서에 설명된 대로 RFX 또는 DFX 함수를 직접 호출할 수도 있습니다. 또한 Technical Note 43 (ODBC) 및 Technical Note 53 (DAO)에 설명된 대로 사용자 고유의 사용자 지정 RFX 또는 DFX 루틴을 작성할 수 있습니다.
RFX 및 Bulk RFX 함수가 함수에 DoFieldExchange
DoBulkFieldExchange
표시되는 예제는 RFX_Text 및 [RFX_Text_Bulk]#rfx_text_bulk)를 참조하세요. DFX 함수는 RFX 함수와 매우 유사합니다.
RFX 함수(ODBC)
속성 | 설명 |
---|---|
RFX_Binary | CByteArray형식의 바이트 배열을 전송합니다. |
RFX_Bool | 부울 데이터를 전송합니다. |
RFX_Byte | 단일 바이트 데이터를 전송합니다. |
RFX_Date | CTime 또는 TIMESTAMP_STRUCT 사용하여 시간과 날짜 데이터를 전송합니다. |
RFX_Double | 배정밀도 부동 소수점 수 데이터를 전송합니다. |
RFX_Int | 정수 데이터를 전송합니다. |
RFX_Long | 정수(Long) 데이터를 전송합니다. |
RFX_LongBinary | CLongBinary 클래스의 개체와 함께 BLOB(Binary Large Object) 데이터를 전송합니다. |
RFX_Single | 부동 소수점 수 데이터를 전송합니다. |
RFX_Text | 문자열 데이터를 전송합니다. |
대량 RFX 함수(ODBC)
속성 | 설명 |
---|---|
RFX_Binary_Bulk | 바이트 데이터 배열을 전송합니다. |
RFX_Bool_Bulk | 부울 데이터 배열을 전송합니다. |
RFX_Byte_Bulk | 단일 바이트 배열을 전송합니다. |
RFX_Date_Bulk | TIMESTAMP_STRUCT형식의 데이터 배열을 전송합니다. |
RFX_Double_Bulk | 배정밀도 부동 소수점 데이터 배열을 전송합니다. |
RFX_Int_Bulk | 정수 데이터 배열을 전송합니다. |
RFX_Long_Bulk | 정수(Long) 데이터 배열을 전송합니다. |
RFX_Single_Bulk | 부동 소수점 데이터 배열을 전송합니다. |
RFX_Text_Bulk | LPSTR형식의 데이터 배열을 전송합니다. |
DFX 함수(DAO)
속성 | 설명 |
---|---|
DFX_Binary | CByteArray형식의 바이트 배열을 전송합니다. |
DFX_Bool | 부울 데이터를 전송합니다. |
DFX_Byte | 단일 바이트 데이터를 전송합니다. |
DFX_Currency | COleCurrency형식의 통화 데이터를 전송합니다. |
DFX_DateTime | COleDateTime형식의 날짜 및 시간 데이터를 전송합니다. |
DFX_Double | 배정밀도 부동 소수점 수 데이터를 전송합니다. |
DFX_Long | 정수(Long) 데이터를 전송합니다. |
DFX_LongBinary | CLongBinary 클래스의 개체와 함께 BLOB(Binary Large Object) 데이터를 전송합니다. DAO의 경우 대신 DFX_Binary 를 사용하는 것이 좋습니다. |
DFX_Short | 정수(Short) 데이터를 전송합니다. |
DFX_Single | 부동 소수점 수 데이터를 전송합니다. |
DFX_Text | 문자열 데이터를 전송합니다. |
=============================================
RFX_Binary
개체의 필드 데이터 멤버 CRecordset
와 ODBC 형식 SQL_BINARY, SQL_VARBINARY 또는 SQL_LONGVARBINARY 데이터 원본에 있는 레코드 열 간에 바이트 배열을 전송합니다.
구문
void RFX_Binary(
CFieldExchange* pFX,
const char* szName,
CByteArray& value,
int nMaxLength = 255);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 CByteArray 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
nMaxLength
전송되는 문자열 또는 배열의 최대 허용 길이입니다. nMaxLength의 기본값은 255입니다. 법적 값은 1에서 INT_MAX. 프레임워크는 데이터에 대해 이 양의 공간을 할당합니다. 최상의 성능을 위해 예상되는 가장 큰 데이터 항목을 수용할 수 있을 만큼 큰 값을 전달합니다.
설명
이러한 형식의 데이터 원본에 있는 데이터는 레코드 집합의 형식 CByteArray
과 매핑됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Bool
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_BIT 데이터 원본의 레코드 열 간에 부울 데이터를 전송합니다.
구문
void RFX_Bool(
CFieldExchange* pFX,
const char* szName,
BOOL& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 BOOL 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Byte
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_TINYINT 데이터 원본의 레코드 열 간에 단일 바이트를 전송합니다.
구문
void RFX_Byte(
CFieldExchange* pFX,
const char* szName,
BYTE& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 BYTE 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Date
개체의 CTime
CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_DATE, SQL_TIME 또는 SQL_TIMESTAMP 데이터 원본의 레코드 열 간에 데이터를 전송하거나 TIMESTAMP_STRUCT.
구문
void RFX_Date(
CFieldExchange* pFX,
const char* szName,
CTime& value);
void RFX_Date(
CFieldExchange* pFX,
const char* szName,
TIMESTAMP_STRUCT& value);
void RFX_Date(
CFieldExchange* pFX,
const char* szName,
COleDateTime& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값입니다. 전송할 값입니다. 함수의 다양한 버전은 값에 대해 다른 데이터 형식을 사용합니다.
함수의 첫 번째 버전은 CTime 개체를 참조합니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 이 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
함수의 두 번째 버전은 구조체를 참조합니다 TIMESTAMP_STRUCT
. 호출 전에 이 구조를 직접 설정해야 합니다. 이 버전에서는 DDX(대화 상자 데이터 교환) 지원 또는 코드 마법사 지원을 사용할 수 없습니다. 함수의 세 번째 버전은 COleDateTime 개체에 대한 참조를 사용한다는 점을 제외하고 첫 번째 버전과 유사하게 작동합니다.
설명
CTime
함수 버전은 일부 중간 처리의 오버헤드를 적용하며 범위가 다소 제한됩니다. 이러한 요소 중 하나가 너무 제한적이면 두 번째 버전의 함수를 사용합니다. 그러나 코드 마법사 및 DDX 지원이 부족하고 구조를 직접 설정해야 하는 요구 사항에 유의하세요.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Double
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_DOUBLE 데이터 원본의 레코드 열 간에 이중 부동 소수 자릿수 데이터를 전송합니다.
구문
void RFX_Double(
CFieldExchange* pFX,
const char* szName,
double& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 double
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Int
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_SMALLINT 데이터 원본의 레코드 열 간에 정수 데이터를 전송합니다.
구문
void RFX_Int(
CFieldExchange* pFX,
const char* szName,
int& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 int
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Long
개체의 필드 데이터 멤버 CRecordset
와 ODBC 형식 SQL_INTEGER 데이터 원본의 레코드 열 간에 긴 정수 데이터를 전송합니다.
구문
void RFX_Long(
CFieldExchange* pFX,
const char* szName,
LONG&
value );
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 long
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_LongBinary
개체의 필드 데이터 멤버 CRecordset
와 ODBC 형식 SQL_LONGVARBINARY 또는 SQL_LONGVARCHAR 데이터 원본의 레코드 열 간에 CLongBinary 클래스를 사용하여 BLOB(Binary Large Object) 데이터를 전송합니다.
구문
void RFX_LongBinary(
CFieldExchange* pFX,
const char* szName,
CLongBinary& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 CLongBinary
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Single
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_REAL 데이터 원본의 레코드 열 간에 부동 소수점 데이터를 전송합니다.
구문
void RFX_Single(
CFieldExchange* pFX,
const char* szName,
float& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 float
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Text
CString
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL 또는 SQL_NUMERIC 데이터 원본의 레코드 열 간에 데이터를 전송합니다.
구문
void RFX_Text(
CFieldExchange* pFX,
const char* szName,
CString& value,
int nMaxLength = 255,
int nColumnType = SQL_VARCHAR,
short nScale = 0);
매개 변수
pFX
클래스 CFieldExchange
의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 CString
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
nMaxLength
전송되는 문자열 또는 배열의 최대 허용 길이입니다. nMaxLength의 기본값은 255입니다. 법적 값은 1에서 INT_MAX)입니다. 프레임워크는 데이터에 대해 이 양의 공간을 할당합니다. 최상의 성능을 위해 예상되는 가장 큰 데이터 항목을 수용할 수 있을 만큼 큰 값을 전달합니다.
nColumnType
매개 변수에 주로 사용됩니다. 매개 변수의 데이터 형식을 나타내는 정수입니다. 형식은 SQL_XXX 양식의 ODBC 데이터 형식입니다.
nScale
ODBC 형식 SQL_DECIMAL 또는 SQL_NUMERIC 값의 배율을 지정합니다. nScale 은 매개 변수 값을 설정할 때만 유용합니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 부록 D에서 "정밀도, 배율, 길이 및 표시 크기" 항목을 참조하세요.
설명
이러한 모든 형식의 데이터 원본에 있는 데이터는 레코드 집합에서 CString
매핑됩니다.
예시
이 예제에서는 .에 대한 여러 호출을 RFX_Text
보여줍니다. 에 대한 두 호출도 확인합니다 CFieldExchange::SetFieldType
. 매개 변수의 경우 호출 및 해당 RFX 호출을 SetFieldType
작성해야 합니다. 출력 열 호출 및 관련 RFX 호출은 일반적으로 코드 마법사에서 작성됩니다.
void CCustomer::DoFieldExchange(CFieldExchange* pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
// Macros such as RFX_Text() and RFX_Int() are dependent on the
// type of the member variable, not the type of the field in the database.
// ODBC will try to automatically convert the column value to the requested type
RFX_Long(pFX, _T("[CustomerID]"), m_CustomerID);
RFX_Text(pFX, _T("[ContactFirstName]"), m_ContactFirstName);
RFX_Text(pFX, _T("[PostalCode]"), m_PostalCode);
RFX_Text(pFX, _T("[L_Name]"), m_L_Name);
RFX_Long(pFX, _T("[BillingID]"), m_BillingID);
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Param"), m_strParam);
}
요구 사항
헤더: afxdb.h
RFX_Binary_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열로 바이트 데이터의 여러 행을 CRecordset
전송합니다.
구문
void RFX_Binary_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BYTE** prgByteVals,
long** prgLengths,
int nMaxLength);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgByteVals
BYTE 값 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgByteVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
nMaxLength
prgByteVals가 가리키는 배열에 저장된 값의 최대 허용 길이입니다. 데이터가 잘리지 않도록 하려면 예상되는 가장 큰 데이터 항목을 수용할 수 있을 만큼 큰 값을 전달합니다.
설명
데이터 원본 열에는 ODBC 형식의 SQL_BINARY, SQL_VARBINARY 또는 SQL_LONGVARBINARY 있을 수 있습니다. 레코드 집합은 BYTE에 대한 형식 포인터의 필드 데이터 멤버를 정의해야 합니다.
prgByteVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Bool_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열로 부울 데이터의 여러 행을 CRecordset
전송합니다.
구문
void RFX_Bool_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BOOL** prgBoolVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgBoolVals
BOOL 값 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgBoolVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_BIT 있어야 합니다. 레코드 집합은 BOOL에 대한 형식 포인터의 필드 데이터 멤버를 정의해야 합니다.
prgBoolVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Byte_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열로 여러 행의 단일 바이트를 CRecordset
전송합니다.
구문
void RFX_Byte_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
BYTE** prgByteVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgByteVals
BYTE 값 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgByteVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_TINYINT 있어야 합니다. 레코드 집합은 BYTE에 대한 형식 포인터의 필드 데이터 멤버를 정의해야 합니다.
prgByteVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Date_Bulk
ODBC 데이터 원본의 열에서 파생된 개체의 해당 배열 CRecordset
로 여러 행의 TIMESTAMP_STRUCT 데이터를 전송합니다.
구문
void RFX_Date_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
TIMESTAMP_STRUCT** prgTSVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgTSVals
TIMESTAMP_STRUCT 값 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다. TIMESTAMP_STRUCT 데이터 형식에 대한 자세한 내용은 ODBC SDK 프로그래머 참조 부록 D의 "C 데이터 형식" 항목을 참조하세요.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgTSVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_DATE, SQL_TIME 또는 SQL_TIMESTAMP 있을 수 있습니다. 레코드 집합은 TIMESTAMP_STRUCT 대한 형식 포인터의 필드 데이터 멤버를 정의해야 합니다.
prgTSVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Double_Bulk
ODBC 데이터 원본의 열에서 파생된 개체의 해당 배열 CRecordset
로 여러 행의 배정밀도 부동 소수점 데이터를 전송합니다.
구문
void RFX_Double_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
double** prgDblVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgDblVals
값 배열에 대한 포인터입니다 double
. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgDblVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_DOUBLE 있어야 합니다. 레코드 집합은 형식 포인터의 필드 데이터 멤버를 정의해야 합니다 double
.
prgDblVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Int_Bulk
개체의 CRecordset
필드 데이터 멤버와 ODBC 형식 SQL_SMALLINT 데이터 원본의 레코드 열 간에 정수 데이터를 전송합니다.
구문
void RFX_Int(
CFieldExchange* pFX,
const char* szName,
int& value);
매개 변수
pFX
CFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 개체가 지정할 수 있는 CFieldExchange
작업에 대한 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 int
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
예시
RFX_Text 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Long_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열로 긴 정수 데이터의 여러 행을 CRecordset
전송합니다.
구문
void RFX_Long_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
long** prgLongVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgLongVals
긴 정수 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgLongVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_INTEGER 있어야 합니다. 레코드 집합은 형식 포인터의 필드 데이터 멤버를 정의해야 합니다 long
.
prgLongVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Single_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열 CRecordset
로 여러 행의 부동 소수점 데이터를 전송합니다.
구문
void RFX_Single_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
float** prgFltVals,
long** prgLengths);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgFltVals
값 배열에 대한 포인터입니다 float
. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgFltVals가 가리키는 배열에서 각 값의 길이를 바이트 단위로 저장합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
설명
데이터 원본 열에는 ODBC 형식의 SQL_REAL 있어야 합니다. 레코드 집합은 형식 포인터의 필드 데이터 멤버를 정의해야 합니다 float
.
prgFltVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
RFX_Text_Bulk 참조하세요.
요구 사항
헤더: afxdb.h
RFX_Text_Bulk
ODBC 데이터 원본의 열에서 파생 개체의 해당 배열 CRecordset
로 여러 행의 문자 데이터를 전송합니다.
구문
void RFX_Text_Bulk(
CFieldExchange* pFX,
LPCTSTR szName,
LPSTR* prgStrVals,
long** prgLengths,
int nMaxLength);
매개 변수
pFX
CFieldExchange 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다. 자세한 내용은 레코드 필드 교환: RFX 작동 방식을 참조 하세요.
szName
데이터 열의 이름입니다.
prgStrVals
LPSTR 값 배열에 대한 포인터입니다. 이 배열은 데이터 원본에서 레코드 집합으로 전송할 데이터를 저장합니다. 현재 버전의 ODBC에서는 이러한 값이 유니코드일 수 없습니다.
prgLengths
긴 정수 배열에 대한 포인터입니다. 이 배열은 prgStrVals가 가리키는 배열에 각 값의 길이를 바이트 단위로 저장합니다. 이 길이는 null 종료 문자를 제외합니다. 해당 데이터 항목에 Null 값이 포함된 경우 SQL_NULL_DATA 값이 저장됩니다. 자세한 내용은 ODBC SDK 프로그래머 참조의 ODBC API 함수 SQLBindCol
를 참조하세요.
nMaxLength
null 종료 문자를 포함하여 prgStrVals가 가리키는 배열에 저장된 값의 최대 허용 길이입니다. 데이터가 잘리지 않도록 하려면 예상되는 가장 큰 데이터 항목을 수용할 수 있을 만큼 큰 값을 전달합니다.
설명
데이터 원본 열에는 ODBC 형식의 SQL_LONGVARCHAR, SQL_CHAR, SQL_VARCHAR, SQL_DECIMAL 또는 SQL_NUMERIC 있을 수 있습니다. 레코드 집합은 LPSTR 형식의 필드 데이터 멤버를 정의해야 합니다.
prgStrVals 및 prgLengths를 NULL로 초기화하면 해당 배열이 가리키는 배열이 행 집합 크기와 같은 크기로 자동으로 할당됩니다.
참고 항목
대량 레코드 필드 교환은 데이터 원본에서 레코드 집합 개체로만 데이터를 전송합니다. 레코드 집합을 업데이트할 수 있도록 하려면 ODBC API 함수 SQLSetPos
를 사용해야 합니다.
자세한 내용은 레코드 집합: 대량으로 레코드 가져오기(ODBC) 및 RFX(레코드 필드 교환)를 참조하세요.
예시
재정의에서 수동으로 호출을 DoBulkFieldExchange
작성해야 합니다. 이 예제에서는 데이터 전송을 위한 RFX_Text_Bulk
호출 및 호출을 RFX_Long_Bulk
보여 있습니다. 이러한 호출 앞에 CFieldExchange::SetFieldType을 호출합니다. 매개 변수의 경우 대량 RFX 함수 대신 RFX 함수를 호출해야 합니다.
void CMultiCustomer::DoBulkFieldExchange(CFieldExchange* pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long_Bulk(pFX, _T("[CustomerID]"), &m_pCustomerID, &m_pcCustomerID);
RFX_Text_Bulk(pFX, _T("[ContactFirstName]"), &m_pContactFirstName, &m_pcContactFirstName, 50);
RFX_Text_Bulk(pFX, _T("[PostalCode]"), &m_pPostalCode, &m_pcPostalCode, 50);
RFX_Text_Bulk(pFX, _T("[L_Name]"), &m_pL_Name, &m_pcL_Name, 50);
RFX_Long_Bulk(pFX, _T("[BillingID]"), &m_pBillingID, &m_pcBillingID);
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Param"), m_strParam);
}
요구 사항
헤더: afxdb.h
DFX_Binary
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 바이트 배열을 전송합니다.
구문
void AFXAPI DFX_Binary(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CByteArray& value,
int nPreAllocSize = AFX_DAO_BINARY_DEFAULT_SIZE,
DWORD dwBindOptions = 0);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 CByteArray 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
nPreAllocSize
프레임워크는 이 양의 메모리를 미리 할당합니다. 데이터가 더 큰 경우 프레임워크는 필요에 따라 더 많은 공간을 할당합니다. 성능을 향상시키려면 이 크기를 재할당을 방지할 수 있을 만큼 큰 값으로 설정합니다. 기본 크기는 AFXDAO에 정의됩니다. H 파일을 AFX_DAO_BINARY_DEFAULT_SIZE.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본값인 AFX_DAO_DISABLE_FIELD_CACHE 이중 버퍼링을 사용하지 않으며 SetFieldDirty 및 SetFieldNull을 직접 호출해야 합니다. 다른 가능한 값인 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용하며 필드를 더티 또는 Null로 표시하기 위해 추가 작업을 수행할 필요가 없습니다. 성능 및 메모리상의 이유로 이진 데이터가 상대적으로 작지 않으면 이 값을 사용하지 마세요.
참고 항목
기본적으로 CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 모든 필드에 대해 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_BYTES 형식과 레코드 집합의 CByteArray 형식 간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Bool
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 부울 데이터를 전송합니다.
구문
void AFXAPI DFX_Bool(
CDaoFieldExchange* pFX,
LPCTSTR szName,
BOOL& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 BOOL 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
데이터는 DAO의 형식 DAO_BOOL 레코드 집합의 BOOL 형식 간에 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Byte
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 단일 바이트를 전송합니다.
구문
void AFXAPI DFX_Byte(
CDaoFieldExchange* pFX,
LPCTSTR szName,
BYTE& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 BYTE 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
데이터는 DAO의 형식 DAO_BYTES 레코드 집합의 BYTE 형식 간에 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Currency
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 통화 데이터를 전송합니다.
구문
void AFXAPI DFX_Currency(
CDaoFieldExchange* pFX,
LPCTSTR szName,
COleCurrency& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 이 값은 COleCurrency 형식의 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_CURRENCY 형식과 레코드 집합의 COleCurrency 형식 간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_DateTime
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 시간과 날짜 데이터를 전송합니다.
구문
void AFXAPI DFX_DateTime(
CDaoFieldExchange* pFX,
LPCTSTR szName,
COleDateTime& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 이 함수는 COleDateTime 개체를 참조합니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 이 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_DATE 형식과 레코드 집합의 COleDateTime 형식 간에 데이터가 매핑됩니다.
참고 항목
COleDateTime
는 DAO 클래스에서 이 용도로 CTime 및 TIMESTAMP_STRUCT 바꿉니다. CTime
및 TIMESTAMP_STRUCT ODBC 기반 데이터 액세스 클래스에 계속 사용됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Double
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 이중 부동 소수 자릿수 데이터를 전송합니다.
구문
void AFXAPI DFX_Double(
CDaoFieldExchange* pFX,
LPCTSTR szName,
double& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 double
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_R8 형식과 레코드 집합의 double float 형식 간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Long
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 긴 정수 데이터를 전송합니다.
구문
void AFXAPI DFX_Long(
CDaoFieldExchange* pFX,
LPCTSTR szName,
long& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 long
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_I4 형식과 레코드 집합의 형식 long
간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_LongBinary
중요 이 함수 대신 DFX_Binary 사용하는 것이 좋습니다.
구문
void AFXAPI DFX_LongBinary(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CLongBinary& value,
DWORD dwPreAllocSize = AFX_DAO_LONGBINARY_DEFAULT_SIZE,
DWORD dwBindOptions = 0);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 CLongBinary 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwPreAllocSize
프레임워크는 이 양의 메모리를 미리 할당합니다. 데이터가 더 큰 경우 프레임워크는 필요에 따라 더 많은 공간을 할당합니다. 성능을 향상시키려면 이 크기를 재할당을 방지할 수 있을 만큼 큰 값으로 설정합니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본값인 AFX_DISABLE_FIELD_CACHE 이중 버퍼링을 사용하지 않습니다. 다른 가능한 값은 AFX_DAO_ENABLE_FIELD_CACHE. 이중 버퍼링을 사용하며 필드를 더티 또는 Null로 표시하기 위해 추가 작업을 수행할 필요가 없습니다. 성능 및 메모리상의 이유로 이진 데이터가 상대적으로 작지 않으면 이 값을 사용하지 마세요.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DFX_LongBinary
는 MFC ODBC 클래스와의 호환성을 위해 제공됩니다. 이 함수는 DFX_LongBinary
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 클래스 CLongBinary
를 사용하여 BLOB(Binary Large-Object) 데이터를 전송합니다. DAO의 DAO_BYTES 형식과 레코드 집합의 CLongBinary 형식 간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Short
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 짧은 정수 데이터를 전송합니다.
구문
void AFXAPI DFX_Short(
CDaoFieldExchange* pFX,
LPCTSTR szName,
short& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 short
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_I2 형식과 레코드 집합의 형식 short
간에 데이터가 매핑됩니다.
참고 항목
DFX_Short
는 ODBC 기반 클래스의 RFX_Int 동일합니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Single
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본의 레코드 열 간에 부동 소수점 데이터를 전송합니다.
구문
void AFXAPI DFX_Single(
CDaoFieldExchange* pFX,
LPCTSTR szName,
float& value,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 형식 float
의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty
및 SetFieldNull
을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
DAO의 DAO_R4 형식과 레코드 집합의 형식 float
간에 데이터가 매핑됩니다.
예시
DFX_Text 참조하세요.
요구 사항
헤더: afxdao.h
DFX_Text
CDaoRecordset 개체의 필드 데이터 멤버와 데이터 원본에 있는 레코드의 열 간에 CString
데이터를 전송합니다.
구문
void AFXAPI DFX_Text(
CDaoFieldExchange* pFX,
LPCTSTR szName,
CString& value,
int nPreAllocSize = AFX_DAO_TEXT_DEFAULT_SIZE,
DWORD dwBindOptions = AFX_DAO_ENABLE_FIELD_CACHE);
매개 변수
pFX
CDaoFieldExchange 클래스의 개체에 대한 포인터입니다. 이 개체에는 각 함수 호출에 대한 컨텍스트를 정의하는 정보가 포함됩니다.
szName
데이터 열의 이름입니다.
value
표시된 데이터 멤버에 저장된 값(전송할 값)입니다. 레코드 집합에서 데이터 원본으로 전송하는 경우 CString 형식의 값은 지정된 데이터 멤버에서 가져옵니다. 데이터 소스에서 레코드 집합으로 전송하기 위해서는 값이 지정된 데이터 멤버에 저장됩니다.
nPreAllocSize
프레임워크는 이 양의 메모리를 미리 할당합니다. 데이터가 더 큰 경우 프레임워크는 필요에 따라 더 많은 공간을 할당합니다. 성능을 향상시키려면 이 크기를 재할당을 방지할 수 있을 만큼 큰 값으로 설정합니다.
dwBindOptions
변경된 레코드 집합 필드를 검색할 수 있도록 MFC의 이중 버퍼링 메커니즘을 활용할 수 있게 해주는 옵션입니다. 기본 AFX_DAO_ENABLE_FIELD_CACHE 이중 버퍼링을 사용합니다. 다른 가능한 값은 AFX_DAO_DISABLE_FIELD_CACHE. 이 값을 지정하면, MFC가 이 필드를 검사하지 않습니다. SetFieldDirty 및 SetFieldNull을 직접 호출해야 합니다.
참고 항목
CDaoRecordset::m_bCheckCacheForDirtyFields 설정하여 기본적으로 데이터가 이중 버퍼링되는지 여부를 제어할 수 있습니다.
설명
데이터는 DAO의 형식 DAO_CHAR(또는 기호 _UNICODE 정의된 경우 DAO_WCHAR) 및 레코드 집합의 CString 형식 간에 매핑됩니다. n
예시
이 예제에서는 .에 대한 여러 호출을 DFX_Text
보여줍니다. CDaoFieldExchange::SetFieldType에 대한 두 호출도 확인합니다. 첫 번째 호출과 해당 DFX 호출을 SetFieldType
작성해야 합니다. 두 번째 호출 및 연결된 DFX 호출은 일반적으로 클래스를 생성한 코드 마법사에 의해 작성됩니다.
void CCustSet::DoFieldExchange(CDaoFieldExchange* pFX)
{
pFX->SetFieldType(CDaoFieldExchange::param);
DFX_Text(pFX, _T("Param"), m_strParam);
pFX->SetFieldType(CDaoFieldExchange::outputColumn);
DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
DFX_Text(pFX, _T("LastName"), m_LastName);
DFX_Short(pFX, _T("Age"), m_Age);
DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
DFX_DateTime(pFX, _T("termination_date"), m_termination_date);
CDaoRecordset::DoFieldExchange(pFX);
}
요구 사항
헤더: afxdao.h
참고 항목
매크로 및 전역
CRecordset::DoFieldExchange
CRecordset::DoBulkFieldExchange
CDaoRecordset::DoFieldExchange