Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veritabanı şeması (veritabanının temel yapısı) hakkında bilginiz olmadığında bir veri kaynağına erişmenizi sağlar.
Sözdizimi
class CDynamicAccessor : public CAccessorBase
Gereksinimler
Üst bilgi: atldbcli.h
Üyeler
Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| AddBindEntry | Varsayılan erişimciyi geçersiz kılarken çıkış sütunlarına bir bağlama girişi ekler. |
| CDynamicAccessor | Nesnesinin örneğini CDynamicAccessor oluşturur ve başlatır. |
| Kapat | Tüm sütunların bağlamasını açar, ayrılan belleği serbest bırakır ve IAccessor arabirim işaretçisini sınıfında serbest bırakır. |
| GetBlobHandling | Geçerli satır için BLOB işleme değerini alır. |
| GetBlobSizeLimit | Bayt cinsinden en büyük BLOB boyutunu alır. |
| GetBookmark | Geçerli satır için yer işaretini alır. |
| GetColumnCount | Satır kümesindeki sütun sayısını alır. |
| GetColumnFlags | Sütun özelliklerini alır. |
| GetColumnInfo | Sütun meta verilerini alır. |
| GetColumnName | Belirtilen sütunun adını alır. |
| GetColumnType | Belirtilen sütunun veri türünü alır. |
| GetLength | Bir sütunun olası uzunluk üst sınırını bayt cinsinden alır. |
| GetOrdinal | Bir sütun adı verilen sütun dizinini alır. |
| GetStatus | Belirtilen sütunun durumunu alır. |
| GetValue | Arabellekten verileri alır. |
| SetBlobHandling | Geçerli satır için BLOB işleme değerini ayarlar. |
| SetBlobSizeLimit | Bayt cinsinden en büyük BLOB boyutunu ayarlar. |
| SetLength | Sütunun uzunluğunu bayt cinsinden ayarlar. |
| SetStatus | Belirtilen sütunun durumunu ayarlar. |
| SetValue | Verileri arabelleğe depolar. |
Açıklamalar
Sütun adları, sütun sayısı, veri türü vb. gibi sütun bilgilerini almak için yöntemleri kullanın CDynamicAccessor . Ardından çalışma zamanında dinamik olarak bir erişimci oluşturmak için bu sütun bilgilerini kullanırsınız.
Sütun bilgileri, bu sınıf tarafından oluşturulan ve yönetilen bir arabellekte depolanır. GetValue kullanarak arabellekten veri alın.
Dinamik erişimci sınıflarını kullanma hakkında bir tartışma ve örnekler için bkz . Dinamik Erişimcileri Kullanma.
CDynamicAccessor::AddBindEntry
Çıkış sütunlarına bir bağlama girdisi ekler.
Sözdizimi
HRESULT AddBindEntry(const DBCOLUMNINFO& info) throw();
Parametreler
Bilgi
[in] DBCOLUMNINFO Sütun bilgilerini içeren bir yapı. OLE DB Programcı Başvurusu'ndaki IColumnsInfo::GetColumnInfo içindeki "DBCOLUMNINFO Yapıları" bölümüne bakın.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
ile CDynamicAccessor oluşturulan varsayılan erişimciyi geçersiz kılırken bu yöntemi kullanın (bkz . Verileri Nasıl Getiririm?).
CDynamicAccessor::CDynamicAccessor
Nesnesinin örneğini CDynamicAccessor oluşturur ve başlatır.
Sözdizimi
CDynamicAccessor(DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
DBLENGTH nBlobSize = 8000);
Parametreler
eBlobHandling
İkili büyük nesne (BLOB) verilerinin nasıl işleneceğini belirtir. Varsayılan değer DBBLOBHANDLING_DEFAULT. DBBLOBHANDLINGENUM değerlerinin açıklaması için bkz . SetBlobHandling .
nBlobSize
Bayt cinsinden en büyük BLOB boyutu; bu değer üzerindeki sütun verileri BLOB olarak değerlendirilir. Varsayılan değer 8.000'dir. Ayrıntılar için bkz . SetBlobSizeLimit .
Açıklamalar
Nesnesini başlatmak CDynamicAccessor için oluşturucuyu kullanırsanız, BLOB'ların nasıl bağlanacağını belirtebilirsiniz. BLOB'lar grafik, ses veya derlenmiş kod gibi ikili veriler içerebilir. Varsayılan davranış, 8.000 bayttan fazla sütunu BLOB olarak ele almak ve bunları bir ISequentialStream nesneye bağlamayı denemektir. Ancak, BLOB boyutu olarak farklı bir değer belirtebilirsiniz.
Blob verileri olarak nitelenen sütun verilerinin nasıl CDynamicAccessor işleneceğini de belirtebilirsiniz: BLOB verilerini varsayılan şekilde işleyebilir; BLOB verilerini atlayabilir (bağlamaz) veya sağlayıcı tarafından ayrılan belleğe BLOB verilerini bağlayabilir.
CDynamicAccessor::Close
Tüm sütunların bağlamasını açar, ayrılan belleği serbest bırakır ve IAccessor arabirim işaretçisini sınıfında serbest bırakır.
Sözdizimi
void Close() throw();
CDynamicAccessor::GetBlobHandling
Geçerli satır için BLOB işleme değerini alır.
Sözdizimi
const DBBLOBHANDLINGENUM GetBlobHandling() const;
Açıklamalar
SetBlobHandling tarafından ayarlanan eBlobHandling BLOB işleme değerini döndürür.
CDynamicAccessor::GetBlobSizeLimit
Bayt cinsinden en büyük BLOB boyutunu alır.
Sözdizimi
const DBLENGTH GetBlobSizeLimit() const;
Açıklamalar
SetBlobSizeLimit tarafından ayarlanan nBlobSize BLOB işleme değerini döndürür.
CDynamicAccessor::GetBookmark
Geçerli satır için yer işaretini alır.
Sözdizimi
HRESULT GetBookmark(CBookmark< >* pBookmark) const throw();
Parametreler
pBookmark
[out] CBookmark nesnesinin işaretçisi.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
Yer işareti almak için VARIANT_TRUE olarak ayarlamanız DBPROP_IRowsetLocate gerekir.
CDynamicAccessor::GetColumnCount
Sütun sayısını alır.
Sözdizimi
DBORDINAL GetColumnCount() const throw();
Dönüş Değeri
Alınan sütun sayısı.
CDynamicAccessor::GetColumnFlags
Sütun özelliklerini alır.
Sözdizimi
bool GetColumnFlags(DBORDINAL nColumn,
DBCOLUMNFLAGS* pFlags) const throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
pFlags
[out] Sütun özelliklerini açıklayan bit maskesi işaretçisi. OLE DB Programcı Başvurusu'ndaki IColumnsInfo::GetColumnInfo içindeki "DBCOLUMNFLAGS Numaralandırılmış Türü" bölümüne bakın.
Dönüş Değeri
Sütun özellikleri başarıyla alınırsa döndürür true . Aksi takdirde döndürür false.
Açıklamalar
Sütun numarası bir sütundan uzaktır. Sıfır sütunu özel bir durumdur; varsa yer işaretidir.
CDynamicAccessor::GetColumnInfo
Çoğu tüketicinin ihtiyaç duyduğu sütun meta verilerini döndürür.
Sözdizimi
HRESULT GetColumnInfo(IRowset* pRowset,
DBORDINAL* pColumns,
DBCOLUMNINFO** ppColumnInfo,
OLECHAR** ppStringsBuffer) throw();
Parametreler
pRowset
[in] IRowset arabirimine bir işaretçi.
pColumns
[out] Satır kümesindeki sütun sayısını döndürmek için bellek işaretçisi; varsa, bu sayı yer işareti sütununu içerir.
ppColumnInfo
[out] Bir yapı dizisinin DBCOLUMNINFO döndürüleceği belleğe yönelik bir işaretçi. OLE DB Programcı Başvurusu'ndaki IColumnsInfo::GetColumnInfo içindeki "DBCOLUMNINFO Yapıları" bölümüne bakın.
ppStringsBuffer
[out] Tek bir ayırma bloğu içinde tüm dize değerleri (columnid içinde veya pwszName için kullanılan adlar) için depolamaya işaretçi döndürülecek belleğe yönelik bir işaretçi.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
, ve veri türleri DBORDINALhakkında bilgi için OLE DB Programcı Başvurusu'nda IColumnsInfo::GetColumnInfo bölümüne bakın.OLECHARDBCOLUMNINFO
CDynamicAccessor::GetColumnName
Belirtilen sütunun adını alır.
Sözdizimi
LPOLESTR GetColumnName(DBORDINAL nColumn) const throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
Dönüş Değeri
Belirtilen sütunun adı.
CDynamicAccessor::GetColumnType
Belirtilen sütunun veri türünü alır.
Sözdizimi
bool GetColumnType(DBORDINAL nColumn,
DBTYPE* pType) const throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
pType
[out] Belirtilen sütunun veri türüne ilişkin bir işaretçi.
Dönüş Değeri
Başarılı veya false başarısız olduğunda döndürürtrue.
CDynamicAccessor::GetLength
Belirtilen sütunun uzunluğunu alır.
Sözdizimi
bool GetLength(DBORDINAL nColumn,
DBLENGTH* pLength) const throw();
bool GetLength(const CHAR* pColumnName,
DBLENGTH* pLength) const throw();
bool GetLength(const WCHAR* pColumnName,
DBLENGTH* pLength) const throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
pLength
[out] Sütunun bayt cinsinden uzunluğunu içeren tamsayı işaretçisi.
Dönüş Değeri
Belirtilen sütun bulunursa döndürür true . Aksi takdirde, bu işlev döndürür false.
Açıklamalar
İlk geçersiz kılma sütun numarasını alır ve ikinci ve üçüncü geçersiz kılmalar sırasıyla ANSI veya Unicode biçiminde sütun adını alır.
CDynamicAccessor::GetOrdinal
Bir sütun adı verilen sütun numarasını alır.
Sözdizimi
bool GetOrdinal(const CHAR* pColumnName,
DBORDINAL* pOrdinal) const throw();
bool GetOrdinal(const WCHAR* pColumnName,
DBORDINAL* pOrdinal) const throw();
Parametreler
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
pOrdinal
[out] Sütun numarasının işaretçisi.
Dönüş Değeri
Belirtilen ada sahip bir sütun bulunursa döndürür true . Aksi takdirde, bu işlev döndürür false.
CDynamicAccessor::GetStatus
Belirtilen sütunun durumunu alır.
Sözdizimi
bool GetStatus(DBORDINAL nColumn,
DBSTATUS* pStatus) const throw();
bool GetStatus(const CHAR* pColumnName,
DBSTATUS* pStatus) const throw();
bool GetStatus(const WCHAR* pColumnName,
DBSTATUS* pStatus) const throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
pStatus
[out] Sütun durumunu içeren değişkenin işaretçisi. Daha fazla bilgi için OLE DB Programcı Başvurusu'nda DBSTATUS bölümüne bakın.
Dönüş Değeri
Belirtilen sütun bulunursa döndürür true . Aksi takdirde, bu işlev döndürür false.
CDynamicAccessor::GetValue
Belirtilen sütunun verilerini alır.
Sözdizimi
void* GetValue(DBORDINAL nColumn) const throw();
void* GetValue(const CHAR* pColumnName) const throw();
void* GetValue(const WCHAR* pColumnName) const throw();
template < class ctype >
bool GetValue(DBORDINAL nColumn, ctype* pData) const throw();
template < class ctype >
bool GetValue(const CHAR* pColumnName, ctype* pData) const throw();
template < class ctype >
bool GetValue(const WCHAR* pColumnName, ctype* pData) const throw();
Parametreler
ctype
[in] Özel işleme gerektiren dize türleri (CHAR*, WCHAR*) dışında herhangi bir veri türünü işleyen şablonlu parametre. GetValue burada belirttiğiniz değere göre uygun veri türünü kullanır.
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
pColumnName
[in] Sütun adı.
pData
[out] Belirtilen sütunun içeriğinin işaretçisi.
Dönüş Değeri
Dize verilerini geçirmek istiyorsanız, uygulamasının ortak olmayan sürümlerini GetValuekullanın. Bu yöntemin ortak olmayan sürümleri, belirtilen sütun verilerini içeren arabelleğin bölümüne işaret eden değerini döndürür void*. Sütun bulunamazsa NULL döndürür.
Diğer tüm veri türleri için şablonlu sürümlerini GetValuekullanmak daha kolaydır. Şablonlu sürümler başarılı veya false başarısız olduğunda döndürüldütrue.
Açıklamalar
Dizeler içeren sütunları ve diğer veri türlerini içeren sütunlar için şablonlu sürümleri döndürmek için ortak olmayan sürümleri kullanın.
Hata ayıklama modunda, pData boyutu işaret ettiği sütunun boyutuna eşit değilse bir onay alırsınız.
CDynamicAccessor::SetBlobHandling
Geçerli satır için BLOB işleme değerini ayarlar.
Sözdizimi
bool SetBlobHandling(DBBLOBHANDLINGENUM eBlobHandling);
Parametreler
eBlobHandling
BLOB verilerinin nasıl işleneceğini belirtir. Aşağıdaki değerleri alabilir:
DBBLOBHANDLING_DEFAULT: nBlobSize değerinden büyük sütun verilerini (tarafından
SetBlobSizeLimitayarlandığı gibi) BLOB verileri olarak işleyin ve birISequentialStreamveyaIStreamnesnesi aracılığıyla alın. Bu seçenek, nBlobSize'den büyük verileri içeren veya BLOB verileri olarak DBTYPE_IUNKNOWN olarak listelenen her sütunu bağlamayı dener.DBBLOBHANDLING_NOSTREAMS: nBlobSize'den büyük sütun verilerini (tarafından
SetBlobSizeLimitayarlandığı gibi) BLOB verileri olarak işleyip sağlayıcı tarafından ayrılan, tüketiciye ait bellekteki başvuru aracılığıyla alın. Bu seçenek, birden fazla BLOB sütunu olan tablolar için kullanışlıdır ve sağlayıcı her erişimci için yalnızca birISequentialStreamnesneyi destekler.DBBLOBHANDLING_SKIP: İçeren BLOB'lar olarak nitelen sütunları atlayın (bağlamayın) (erişimci sütun değerini bağlamaz veya almaz, ancak yine de sütun durumunu ve uzunluğunu alır).
Açıklamalar
çağrısına başlamadan önce aramanız SetBlobHandling Opengerekir.
CDynamicAccessor oluşturucu yöntemi BLOB işleme değerini DBBLOBHANDLING_DEFAULT olarak ayarlar.
CDynamicAccessor::SetBlobSizeLimit
Bayt cinsinden en büyük BLOB boyutunu ayarlar.
Sözdizimi
void SetBlobSizeLimit(DBLENGTH nBlobSize);
Parametreler
nBlobSize
BLOB boyut sınırını belirtir.
Açıklamalar
Bayt cinsinden en büyük BLOB boyutunu ayarlar; bu değerden büyük sütun verileri BLOB olarak değerlendirilir. Bazı sağlayıcılar sütunlar için son derece büyük boyutlar (2 GB gibi) verir. Bu boyuttaki bir sütun için bellek ayırmaya çalışmak yerine genellikle bu sütunları BLOB olarak bağlamayı denersiniz. Bu şekilde tüm belleği ayırmanız gerekmez, ancak kesme korkusu olmadan da tüm verileri okuyabilirsiniz. Ancak, yerel veri türlerinde büyük sütunları bağlamaya zorlamak CDynamicAccessor isteyebileceğiniz bazı durumlar vardır. Bunu yapmak için çağırmadan önce öğesini arayın SetBlobSizeLimit Open.
CDynamicAccessor oluşturucu yöntemi, maksimum BLOB boyutunu varsayılan 8.000 bayt değerine ayarlar.
CDynamicAccessor::SetLength
Belirtilen sütunun uzunluğunu ayarlar.
Sözdizimi
bool SetLength(DBORDINAL nColumn,
DBLENGTH nLength)throw();
bool SetLength(const CHAR* pColumnName,
DBLENGTH nLength) throw();
bool SetLength(const WCHAR* pColumnName,
DBLENGTH nLength) throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
nLength
[in] Sütunun bayt cinsinden uzunluğu.
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
Dönüş Değeri
Belirtilen sütun uzunluğu başarıyla ayarlanırsa döndürür true . Aksi takdirde, bu işlev döndürür false.
CDynamicAccessor::SetStatus
Belirtilen sütunun durumunu ayarlar.
Sözdizimi
bool SetStatus(DBORDINAL nColumn,
DBSTATUS status)throw();
bool SetStatus(const CHAR* pColumnName,
DBSTATUS status) throw();
bool SetStatus(const WCHAR* pColumnName,
DBSTATUS status) throw();
Parametreler
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
durum
[in] Sütun durumu. Daha fazla bilgi için OLE DB Programcı Başvurusu'nda DBSTATUS bölümüne bakın.
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
Dönüş Değeri
Belirtilen sütun durumu başarıyla ayarlanırsa döndürür true . Aksi takdirde, bu işlev döndürür false.
CDynamicAccessor::SetValue
Verileri belirtilen bir sütuna depolar.
Sözdizimi
template <class ctype>
bool SetValue(
DBORDINAL nColumn,
constctype& data) throw( );
template <class ctype>
bool SetValue(
const CHAR * pColumnName,
const ctype& data) throw( );
template <class ctype>
bool SetValue(
const WCHAR *pColumnName,
const ctype& data) throw( );
Parametreler
ctype
[in] Özel işleme gerektiren dize türleri (CHAR*, WCHAR*) dışında herhangi bir veri türünü işleyen şablonlu parametre. GetValue burada belirttiğiniz değere göre uygun veri türünü kullanır.
pColumnName
[in] Sütun adını içeren bir karakter dizesinin işaretçisi.
data
[in] Verileri içeren belleğe yönelik işaretçi.
nSütun
[in] Sütun numarası. Sütun numaraları 1 ile başlar. 0 değeri varsa yer işareti sütununa başvurur.
Dönüş Değeri
Dize verilerini ayarlamak istiyorsanız, uygulamasının platform dışı sürümlerini GetValuekullanın. Bu yöntemin ortak olmayan sürümleri, belirtilen sütun verilerini içeren arabelleğin bölümüne işaret eden değerini döndürür void*. Sütun bulunamazsa NULL döndürür.
Diğer tüm veri türleri için şablonlu sürümlerini GetValuekullanmak daha kolaydır. Şablonlu sürümler başarılı veya false başarısız olduğunda döndürüldütrue.
Ayrıca bkz.
OLE DB Tüketici Şablonları
OLE DB Tüketici Şablonları Başvurusu
CAccessor Sınıfı
CDynamicParameterAccessor Sınıfı
CManualAccessor Sınıfı