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.
Şema satır kümeleri için uygulama sağlar.
Sözdizimi
template <class SessionClass>
class ATL_NO_VTABLE IDBSchemaRowsetImpl : public IDBSchemaRowset
Parametreler
SessionClass
Devralınan IDBSchemaRowsetImpl sınıfı. Bu sınıf genellikle kullanıcının oturum sınıfı olur.
Gereksinimler
Üst bilgi: atldb.h
Üyeler
Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| CheckRestrictions | Şema satır kümesine göre kısıtlamaların geçerliliğini denetler. |
| CreateSchemaRowset | Şablon parametresi tarafından belirtilen nesne için bir COM nesnesi oluşturucu işlevi uygular. |
| SetRestrictions | Belirli bir şema satır kümesinde hangi kısıtlamaları desteklediğinizi belirtir. |
Arabirim Yöntemleri
| Veri Akışı Adı | Açıklama |
|---|---|
| GetRowset | Bir şema satır kümesi döndürür. |
| GetSchemas | IDBSchemaRowsetImpl::GetRowset tarafından erişilebilen şema satır kümelerinin listesini döndürür. |
Açıklamalar
Bu sınıf, IDBSchemaRowset arabirimini ve CreateSchemaRowset templatized creator işlevini uygular.
OLE DB, bir sağlayıcıdaki veriler hakkında veri döndürmek için şema satır kümelerini kullanır. Bu tür veriler genellikle "meta veriler" olarak adlandırılır. Varsayılan olarak, OLE DB Programcı Başvurusu'ndaki IDBSchemaRowset'te açıklandığı gibi sağlayıcının her zaman , DBSCHEMA_COLUMNSve DBSCHEMA_PROVIDER_TYPES'yi desteklemesi DBSCHEMA_TABLESgerekir. Şema satır kümeleri bir şema eşlemesinde belirlenir. Şema eşleme girdileri hakkında bilgi için bkz . SCHEMA_ENTRY.
ATL Nesne Sihirbazı'ndaki OLE DB Sağlayıcı Sihirbazı, projenizdeki şema satır kümeleri için otomatik olarak kod oluşturur. (Varsayılan olarak, sihirbaz daha önce bahsedilen zorunlu şema satır kümelerini destekler.) ATL Nesne Sihirbazı'nı kullanarak bir tüketici oluşturduğunuzda, sihirbaz doğru verileri bir sağlayıcıya bağlamak için şema satır kümelerini kullanır. Doğru meta verileri sağlamak için şema satır kümelerinizi uygulamazsanız sihirbaz doğru verileri bağlamaz.
Sağlayıcınızda şema satır kümelerini destekleme hakkında bilgi için bkz . Şema Satır Kümelerini Destekleme.
Şema satır kümeleri hakkında daha fazla bilgi için bkz. OLE DB Programcı Başvurusundaki Şema Satır Kümeleri.
IDBSchemaRowsetImpl::CheckRestrictions
Şema satır kümesine göre kısıtlamaların geçerliliğini denetler.
Sözdizimi
HRESULT CheckRestrictions(REFGUID rguidSchema,
ULONG cRestrictions, const VARIANT rgRestrictions[]);
Parametreler
rguidSchema
[in] İstenen şema satır kümesi GUID'sine başvuru (örneğin, DBSCHEMA_TABLES).
cRestrictions
[in] Tüketicinin şema satır kümesi için iletmiş olduğu kısıtlamaların sayısı.
rgRestrictions
[in] Ayarlanacak kısıtlama değerlerinin cRestrictions uzunluk dizisi. Daha fazla bilgi için SetRestrictions içindeki rgRestrictions parametresinin açıklamasına bakın.
Açıklamalar
Şema satır kümesine göre kısıtlamaların geçerliliğini denetlemek için kullanın CheckRestrictions . , DBSCHEMA_COLUMNSve DBSCHEMA_PROVIDER_TYPES şema satır kümeleri için DBSCHEMA_TABLESkısıtlamaları denetler. Bir tüketicinin çağrısının doğru olup olmadığını belirlemek için IDBSchemaRowset::GetRowset bunu arayın. Yukarıda listelenenler dışında şema satır kümelerini desteklemek istiyorsanız, bu görevi gerçekleştirmek için kendi işlevinizi oluşturmanız gerekir.
CheckRestrictionstüketicinin GetRowset'i doğru kısıtlama ve sağlayıcının desteklediği doğru kısıtlama türüyle (örneğin, bir dize için VT_BSTR) çağırıp çağırmadığını belirler. Ayrıca doğru sayıda kısıtlamanın desteklenip desteklenmediğini de belirler. Varsayılan olarak, CheckRestrictions sağlayıcıya Belirli bir satır kümesinde hangi kısıtlamaları desteklediğini SetRestrictions çağrısı aracılığıyla sorar. Ardından tüketicinin kısıtlamalarını sağlayıcı tarafından desteklenenlerle karşılaştırır ve başarılı veya başarısız olur.
Şema satır kümeleri hakkında daha fazla bilgi için Windows SDK'sında OLE DB Programcı Başvurusu'ndaki IDBSchemaRowset bölümüne bakın.
IDBSchemaRowsetImpl::CreateSchemaRowset
Şablon parametresi tarafından belirtilen nesne için bir COM nesnesi oluşturucu işlevi uygular.
Sözdizimi
template template <class SchemaRowsetClass>
HRESULT CreateSchemaRowset(IUnknown *pUnkOuter,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown** ppRowset,
SchemaRowsetClass*& pSchemaRowset);
Parametreler
pUnkOuter
[in] Toplama sırasında dış IUnknown , aksi takdirde NULL.
cRestrictions
[in] Şema satır kümesine uygulanan kısıtlamaların sayısı.
rgRestrictions
[in] Satır kümesine cRestrictionsuygulanacak VARIANTdizisi.
riid
[in] Çıktıda IUnknowniçin QueryInterface arabirimi.
cPropertySets
[in] Ayarlanacağı özellik kümelerinin sayısı.
rgPropertySets
[in] Ayarlanmakta olan özellikleri belirten DBPROPSET yapıları dizisi.
ppRowset
[out] Riid tarafından istenen gidenIUnknown. Bu IUnknown , şema satır kümesi nesnesinde bir arabirimdir.
pSchemaRowset
[out] Şema satır kümesi sınıfının örneğine yönelik bir işaretçi. Genellikle, bu parametre kullanılmaz, ancak bir COM nesnesine vermeden önce şema satır kümesi üzerinde daha fazla çalışma yapmanız gerekiyorsa kullanılabilir. pSchemaRowset'in ömrü ppRowset ile bağlıdır.
Dönüş Değeri
Standart bir HRESULT değeri.
Açıklamalar
Bu işlev, her tür şema satır kümesi için genel bir oluşturucu uygular. Genellikle kullanıcı bu işlevi çağırmaz. Şema eşlemesi uygulaması tarafından çağrılır.
IDBSchemaRowsetImpl::SetRestrictions
Belirli bir şema satır kümesinde hangi kısıtlamaları desteklediğinizi belirtir.
Sözdizimi
void SetRestrictions(ULONG cRestrictions,
GUID* /* rguidSchema */,
ULONG* rgRestrictions);
Parametreler
cRestrictions
[in] rgRestrictions dizisindeki kısıtlamaların sayısı ve rguidSchema dizisindeki GUID sayısı.
rguidSchema
[in] Kısıtlamaların getirildiği şema satır kümelerinin GUID'lerinin dizisi. Her dizi öğesi bir şema satır kümesinin GUID'sini içerir (örneğin, DBSCHEMA_TABLES).
rgRestrictions
[in] Ayarlanacak kısıtlama değerlerinin cRestrictions uzunluk dizisi. Her öğe, GUID tarafından tanımlanan şema satır kümesindeki kısıtlamalara karşılık gelir. Sağlayıcı tarafından bir şema satır kümesi desteklenmiyorsa, öğesi sıfır olarak ayarlanır. Aksi takdirde ULONG değeri, bu şema satır kümesinde desteklenen kısıtlamaları temsil eden bir bit maskesi içerir. Hangi kısıtlamaların belirli bir şema satır kümesine karşılık geldiği hakkında daha fazla bilgi için, Windows SDK'sında OLE DB Programcı Başvurusu'ndaki IDBSchemaRowset'teki şema satır kümesi GUID'leri tablosuna bakın.
Açıklamalar
IDBSchemaRowset nesnesi, belirli bir şema satır kümesinde hangi kısıtlamaları desteklediğinizi belirlemek için çağırır SetRestrictions (bu, bir yukarı dağıtılmış işaretçi aracılığıyla GetSchemas tarafından çağrılır). Kısıtlamalar, tüketicilerin yalnızca eşleşen satırları getirmesine olanak sağlar (örneğin, "MyTable" tablosundaki tüm sütunları bulur). Kısıtlamalar isteğe bağlıdır ve hiçbirinin desteklenmediği durumlarda (varsayılan), tüm veriler her zaman döndürülür.
Bu yöntemin varsayılan uygulaması rgRestrictions dizi öğelerini 0 olarak ayarlar. Varsayılan dışında kısıtlamalar ayarlamak için oturum sınıfınızda varsayılanı geçersiz kılın.
Şema satır kümesi desteği uygulama hakkında bilgi için bkz . Şema Satır Kümelerini Destekleme.
Şema satır kümelerini destekleyen bir sağlayıcı örneği için bkz . UpdatePV örneği.
Şema satır kümeleri hakkında daha fazla bilgi için Windows SDK'sında OLE DB Programcı Başvurusu'ndaki IDBSchemaRowset bölümüne bakın.
IDBSchemaRowsetImpl::GetRowset
Bir şema satır kümesi döndürür.
Sözdizimi
STDMETHOD (GetRowset)(IUnknown *pUnkOuter,
REFGUID rguidSchema,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown **ppRowset);
Parametreler
pUnkOuter
[in] Toplama sırasında bir dış IUnknown ; aksi takdirde NULL.
rguidSchema
[in] İstenen şema satır kümesi GUID'sine başvuru (örneğin, DBSCHEMA_TABLES).
cRestrictions
[in] Satır kümesine uygulanacak kısıtlamaların sayısı.
rgRestrictions
[in] Kısıtlamaları temsil eden BIR VARIANTdizisicRestrictions.
riid
[in] Yeni oluşturulan şema satır kümesinin istenecek IID değeri.
cPropertySets
[in] Ayarlanacağı özellik kümelerinin sayısı.
rgPropertySets
[in/out] Yeni oluşturulan şema satır kümesinde ayarlanacağı DBPROPSET yapıları dizisi.
ppRowset
[out] Yeni oluşturulan şema satır kümesinde istenen arabirime yönelik bir işaretçi.
Açıklamalar
Bu yöntem, kullanıcının oturum sınıfında bir şema eşlemesi olmasını gerektirir. Şema eşleme bilgilerini kullanarak, GetRowset rguidSchema parametresi eşleme giriş GUID'lerinden birine eşitse belirli bir satır kümesi nesnesi oluşturur. Harita girişinin açıklaması için bkz . SCHEMA_ENTRY .
Bkz . Windows SDK'sında IDBSchemaRowset::GetRowset .
IDBSchemaRowsetImpl::GetSchemas
IDBSchemaRowsetImpl::GetRowset tarafından erişilebilen şema satır kümelerinin listesini döndürür.
Sözdizimi
STDMETHOD (GetSchema s )(ULONG * pcSchemas,
GUID ** prgSchemas,
ULONG** prgRest);
Parametreler
pcSchemas
[out] Şema sayısıyla doldurulmuş bir ULONG işaretçisi.
prgSchemas
[out] Şema satır kümesi GUID'leri dizisine yönelik bir işaretçiyle doldurulmuş bir GUID dizisi işaretçisi.
prgRest
[out] Kısıtlama dizisiyle doldurulacak ULONGdizisine yönelik bir işaretçi.
Açıklamalar
Bu yöntem, sağlayıcı tarafından desteklenen tüm şema satır kümelerinden oluşan bir dizi döndürür. Bkz . Windows SDK'sında IDBSchemaRowset::GetSchemas .
Bu işlevin uygulanması için kullanıcının oturum sınıfında bir şema eşlemesi olması gerekir. Şema eşleme bilgilerini kullanarak, haritadaki şemalar için GUID dizisiyle yanıt verir. Bu, sağlayıcı tarafından desteklenen şemaları temsil eder.
Ayrıca bkz.
Şema Satır Kümesi Sınıfları ve Typedef Sınıfları
Şema Satır Kümelerini Destekleme
SCHEMA_ENTRY
UpdatePV