Aracılığıyla paylaş


Kullanıcı Kaydı

Kullanıcı kaydı satır kümesi için sütun verisini gösteren kodu ve veri yapısını sağlar.Kullanıcı kaydı derleme zamanında veya çalışma zamanında oluşturulabilir.ATL OLE DB Sağlayıcı Sihirbazı'nı kullanarak sağlayıcı oluşturduğunuzda, sihirbaz aşağıdakine benzeyen varsayılan kullanıcı kaydı oluşturur ("MyProvider" sağlayıcı adını [kısa ad] belirttiğiniz varsayılarak):

class CWindowsFile:
   public WIN32_FIND_DATA
{
public:

BEGIN_PROVIDER_COLUMN_MAP(CMyProviderWindowsFile)
   PROVIDER_COLUMN_ENTRY("FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY("FileSizeHigh", 2, nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY_STR("FileName", 4, cFileName)
   PROVIDER_COLUMN_ENTRY_STR("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

};

OLE DB sağlayıcı şablonları kullanıcı etkileşimiyle ilgili bütün OLE DB özelliklerini işler.Yanıt için gereken sütun verisini almak için, sağlayıcı kullanıcı kaydına yerleştirmeniz gereken GetColumnInfo işlevini çağırır.Kullanıcı kaydında GetColumnInfo'yu açıkça geçersiz kılabilirsiniz, örneğin, aşağıda görüldüğü gibi .h dosyasında bildirerek.

template <class T>
static ATLCOLUMNINFO* GetColumnInfo(T* pThis, ULONG* pcCols) 

Bu aşağıdakine eşdeğerdir:

static ATLCOLUMNINFO* GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
static ATLCOLUMNINFO* GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

Ayrıca kullanıcı kaydının .cpp dosyasında GetColumnInfo'yu uygulamalısınız.

PROVIDER_COLUMN_MAP makroları GetColumnInfo işlevini oluşturmaya yardım eder:

  • BEGIN_PROVIDER_COLUMN_MAP işlev prototipini ve ATLCOLUMNINFO yapılarının statik dizisini tanımlar.

  • PROVIDER_COLUMN_ENTRY tek ATLCOLUMNINFO tanımlar ve başlatır.

  • END_PROVIDER_COLUMN_MAP diziyi ve işlevi kapatır.Ayrıca dizi öğe sayısını pcCols parametresine yerleştirir.

Çalışma zamanında kullanıcı kaydı oluşturulduğunda, satır kümesine veya komut örneğine bir işaretçi almak için GetColumnInfo pThis parametresini kullanır.Sütun bilgisinin bu işaretçiyle alınabilmesi için komutlar ve satır kümeleri IColumnsInfo arayüzünü desteklemelidir.

CommandClass ve RowsetClass kullanıcı kaydını kullanan komut ve satır kümesidir.

Kullanıcı kaydında GetColumnInfo'nun nasıl geçersiz kılınacağıyla ilgili daha detaylı örnek için, bkz. Tüketiciye Döndürülecek Olan Sütunları Dinamik Olarak Belirleme.

Ayrıca bkz.

Kavramlar

OLE DB Sağlayıcı Şablonu Mimarisi