void GetFieldValue (lpctstr lpszNameCDBVariantamp; varValuekısanFieldType= DEF&AULT_FIELD_TYPE);
(CDBException, CMemoryException) atmak;
void GetFieldValue (kısa nIndexCDBVariantamp; varValuekısanFieldType= DEF&AULT_FIELD_TYPE);
(CDBException, CMemoryException) atmak;
void GetFieldV&alue (lpctstr lpszNameCStringamp;strValue );
throw (CDBException, CMemoryException);
void GetFieldV&alue (kısa nIndexCStringamp;strValue );
throw (CDBException, CMemoryException);
Parametreleri
lpszName
Alan adı.
varValue
Alanın değerini depolayan bir CDBVariant nesnesine bir başvuru.
nFieldType
Alan odbc c veri türü. Varsayılan değer, DEFAULT_FIELD_TYPE, GetFieldValue c veri türü aşağıdaki tabloyu temel alan sql veri türü belirlemek için zorlar. Aksi takdirde, verileri doğrudan yazın veya uyumlu veri türü belirtebilirsiniz; Örneğin, herhangi bir sql_c_char veri türüne saklayabilir.
| C veri türü | Sql veri türü |
| 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 veri türleri hakkında daha fazla bilgi için bkz: "sql veri türleri" ve "c veri türleri" ın Ek d odbc sdk Programcı Başvurusu konular.
nIndex
Alanın sıfır tabanlı dizin.
strValue
Dönüştürülmesi için metin, alanın veri türüne bakılmaksızın, alanın değeri depolayacak CString nesnesine bir başvuru.
Açıklamalar
Geçerli kayıttaki alan veri almak için bu üye işlevini çağırın. Sen-ebilmek bakmak kadar bir alan adı veya dizini. Alan değeri CDBVariant bir nesneyi veya bir CString object saklayabilirsiniz.
Satır toplu alma uyguladıysanız, geçerli kaydın her zaman satır kümesi ilk kayıtta yer alıyor. GetFieldValue belirli bir satır kümesi içindeki bir kaydı kullanmak için önce imleç istenen satır, satır kümesi içinde taşımak için SetRowsetCursorPosition üye işlevi çağırmalıdır. Sonra GetFieldValue , bu satır için arayın. Alma toplu satır uygulamak için dwOptions parametresi CRecordset::useMultiRowFetch seçeneği Açık üye işlev belirtmeniz gerekir.
Dinamik statik bağlama onları tasarım zamanında yerine çalıştırma alanları almak için GetFieldValue kullanabilirsiniz. Örneğin, bir recordset nesnesinden doğrudan CRecordsetbildirdikten, alan verilerini almak için GetFieldValue kullanmalısınız; kayıt alanını exchange (rfx) veya toplu kayıt alan değiş tokuşu (Bulk rfx), uygulanmadı.
&Notnbsp; Bir recordset nesnesi CRecordsetya olmadan olarak bildirirseniz, yüklü odbc imleç kitaplığı yok. İmleç kitaplığı kayıt ilişkili en az bir sütun olması gerekir; Ancak, CRecordset doğrudan kullandığınızda, sütunlar hiçbiri bağlanır. İmleç kitaplığı-ecek var olmak yüklü olup olmadığını kontrol CDatabase::OpenEx ve CDatabase::Open üye işlevleri.
GetFieldValue SQLGetDataodbc API işlevini çağırır. Alan değerinin gerçek uzunluğunu değeri sql_no_total sürücü çıkışları, GetFieldValue bir istisna atar. SQLGetDatahakkında daha fazla bilgi için bkz: odbc sdk Programcı Başvurusu.
Örnek
GetFieldValue çağrıları doğrudan CRecordset ilan bir recordset nesnesi için aşağıdaki örnek kodu gösterilmiştir.
/ / Oluşturmak ve bir veritabanı nesnesi;
/ / değil yük imleç kitaplığı
CDatabase db;
DB.OpenEx (null, CDatabase::forceOdbcDialog);
/ / Oluşturmak ve bir recordset nesnesini açın
/ / doğrudan doğruya--dan CRecordset. Not bir
/ / Tablo bağlantılı veritabanında mevcut olmalıdır.
/ / ForwardOnly türünde bir recordset için iyi kullanın
/ / sadece MoveNext gerekli olduğundan performans,
CRecordset rs (amp; db);
RS.Açık (CRecordset::forwardOnly,
_t ("seçin * from SomeTable"));
/ / Bir CDBVariant nesnesi oluşturma
/ / alan verilerini depolamak
CDBVariant varValue;
/ / Loop recordset,
/ / GetFieldValue kullanarak ve
/ / GetODBCFieldCount almak için
/ / tüm sütunlardaki veriler
kısa nFields rs =.GetODBCFieldCount ();
süre (! rs.IsEOF ())
{
için (kısa index = 0; dizin < nFields; dizin ++)
{
RS.GetFieldValue (index, varValue);
/ / varValue yapmak
}
RS.MoveNext (;):
}
RS.(Kapat);
DB.Kapat)
&Notnbsp; dao sınıfın CDaoRecordset CRecordset bir SetFieldValue üye işlevi yok. Doğrudan CRecordsetnesne oluşturursanız, salt okunur etkili.
Satır toplu alma hakkında daha fazla bilgi için bkz: yazı Recordset: getiriliyor kayıtları toplu (odbc) Visual c++ Programcı Kılavuzu.
CRecordset ge&nel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi
Ayrıca bkz: CRecordset::DoFieldExchange, CRecordset::DoBulkFieldExchange, CRecordset::GetODBCFieldCount, CRecordset::GetODBCFieldInfo, CRecordset::SetRowsetCursorPosition