CRecordset::GetFieldValue

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

Index