Getfieldvalue를 무효화 (LPCTSTR lpszNameCDBVariantamp; varValue짧은nFieldType= DEFAULT_FIELD_TYPE);
(CDBException, CMemoryException)을 던져;(&A)
Getfieldvalue를 무효화 (짧은 nIndexCDBVariantamp; varValue짧은nFieldType= DEFAULT_FIELD_TYPE);
(CDBException, CMemoryException)을 던져;(&A)
Getfieldvalue를 무효화 (LPCTSTR lpszNameCStringamp;strValue(&A) );
throw (CDBException, CMemoryException);
Getfieldvalue를 무효화 (짧은 nIndexCStringamp;strValue(&A) );
throw (CDBException, CMemoryException);
매개 변수
lpszName
필드의 이름。
varValue
필드의 값을 저장 하는 CDBVariant 개체에 대 한 참조。
nFieldType
필드의 ODBC C 데이터 형식입니다. 기본값 DEFAULT_FIELD_TYPE를 사용 하 여 강제로 GetFieldValue 를 기반으로 다음 표에서 SQL 데이터 형식을 C 데이터 형식을 결정 합니다. 그렇지 않으면, 지정할 수 있는 데이터를 직접 입력 하거나 호환 가능한 데이터 형식; 예를 들어, SQL_C_CHAR 에 모든 데이터 형식을 저장할 수 있습니다.
| C 데이터 형식 | SQL 데이터 형식 |
| SQL_C_BIT | SQL_BIT |
| SQL_C_UTINYINT | SQL_TINYINT |
| SQL_C_SSHORT | SQL_SMALLINT |
| SQL_C_SLONG | SQL_INTEGER |
| SQL_C_FLOAT | SQL_REAL |
| SQL_C_DOUBLE | SQL_FLOAT SQL_DOUBLE |
| SQL_C_TIMESTAMP | SQL_DATE SQL_TIME SQL_TIMESTAMP |
| SQL_C_CHAR | SQL_NUMERIC SQL_DECIMAL SQL_BIGINT 두 배인 SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR |
| SQL_C_BINARY | SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARY |
ODBC 데이터 형식에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. "SQL 데이터 형식" 및 "C 데이터 형식" ODBC SDK Programmer's Reference 의 부록 d 항목。
nIndex
필드의 인덱스。
strValue
필드의 값을 저장 하는 CString 개체에 대 한 참조는 필드의 데이터 형식에 관계 없이 텍스트로 변환。
주의
현재 레코드의 필드 데이터를 검색 하려면이 멤버 함수를 호출 합니다. 이름별 또는 인덱스 별로 필드를 조회할 수 있습니다. CDBVariant 개체 또는 CString 개체에서 필드 값을 저장할 수 있습니다.
대량 행 페치가 구현 하는 경우 현재 레코드의 항상 행 집합의 첫 번째 레코드에 위치 합니다. GetFieldValue 주어진된 행 집합 내에서 레코드를 사용 하려면 먼저 행 집합 내에서 원하는 행으로 커서를 이동 하려면 SetRowsetCursorPosition 멤버 함수를 호출 해야 합니다. 그런 다음 해당 행에 대 한 GetFieldValue 를 호출 합니다. 대량 행 페치를 구현 하려면 Open 멤버 함수에서 dwOptions 매개 변수의 CRecordset::useMultiRowFetch 옵션 지정。
GetFieldValue 를 사용 하 여 정적으로 디자인 타임에 바인딩 하는 것 보다는 실행된 시간에 동적으로 필드를 가져올 수 있습니다. 예를 들어, 직접 CRecordset에서 recordset 개체를 선언 하는 경우 사용 해야 합니다 GetFieldValue ; 필드 데이터를 검색 하려면 레코드 필드 교환 RFX (), 또는 (대량 RFX) 대량 레코드 필드 교환 구현 되지 않았습니다.
메모nbsp;CRecordset에서 파생 하지 않고 recordset 개체를 선언 하는 경우 ODBC 커서 라이브러리 로드 있지 않습니다. 커서 라이브러리는 있어야 recordset 하나 이상의 바운드 열; 그러나, 직접 CRecordset 사용 하는 경우 없음 열이 바인딩됩니다. 멤버 함수 CDatabase::OpenEx 및 CDatabase::Open 컨트롤 커서 라이브러리를 로드할 수 있는지 여부(&N)。
GetFieldValue SQLGetDataODBC API 함수를 호출합니다. 필드 값의 실제 길이 대 한 SQL_NO_TOTAL 값을 출력 하는 드라이버, GetFieldValue 에서 예외가 발생 합니다. SQLGetData에 대 한 자세한 내용은 ODBC SDK Programmer's Reference 를 참조 하십시오.
예제
다음 샘플 코드에서는 GetFieldValue CRecordset 에서 직접 선언 하는 recordset 개체에 대 한。
/ / 만들고; 데이터베이스 개체 열기
/ / 커서 라이브러리를 로드 하지 않습니다
CDatabase db;
db입니다.OpenEx (NULL, CDatabase::forceOdbcDialog);
/ / 만들고 recordset 개체를 엽니다.
/ / Crecordset에서 직접. 유의
/ / 테이블 연결 된 데이터베이스에 존재 해야 합니다.
/ / ForwardOnly 형식 레코드 집합을 사용 하는 최고의 대 한
/ / 성능만 MoveNext 필수 이므로
CRecordset rs (amp; db);
rs입니다.열기 (CRecordset::forwardOnly,
??????? _T ("선택 * Sometable에서"));
/ / CDBVariant 개체 만들기
/ / 필드 데이터를 저장할
CDBVariant varValue;
/ / 레코드 집합을 통해 루프
/ / Getfieldvalue를 사용 하 여 및
/ / 검색 GetODBCFieldCount
/ / 모든 열에 데이터
짧은 nFields rs =.GetODBCFieldCount ();
동안 (! rs.IsEOF ())
{
? 에 대 한 (짧은 인덱스 = 0; 색인 < nFields; 색인 + +)
? {
???? rs입니다.GetFieldValue (인덱스, varValue);
???? / / varValue 함께 뭔가
? }
? rs입니다.MoveNext ();
}
rs입니다.Close ();
db입니다.Close)
메모nbsp;CDaoRecordsetDAO 클래스와는 달리 CRecordset 은 SetFieldValue 멤버 함수를 있지 않습니다. 그것은 효과적으로 읽기 전용 CRecordset에서 직접 개체를 만드는 경우(&N)。
대량 행 페칭에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 레코드 집합: 레코드 페치 대량 (ODBC) Visual c + + 프로그래머 가이드。
CRecordset 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)
참고 항목nbsp;CRecordset::DoFieldExchange, CRecordset::DoBulkFieldExchange, CRecordset::GetODBCFieldCount, CRecordset::GetODBCFieldInfo, CRecordset::SetRowsetCursorPosition(&N)