Kullanıcı Kaydı

Not

ATL OLE DB Sağlayıcısı sihirbazı Visual Studio 2019 ve sonraki sürümlerde kullanılamaz.

Kullanıcı kaydı, satır kümesinin sütun verilerini temsil eden 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 bir sağlayıcı oluşturduğunuzda, sihirbaz şuna benzer bir varsayılan kullanıcı kaydı oluşturur (MyProvider için bir sağlayıcı adı [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ı, istemciyle etkileşimlerle ilgili tüm OLE DB özelliklerini işler. Bir yanıt için gereken sütun verilerini almak için sağlayıcı, kullanıcı kaydına GetColumnInfo yerleştirmeniz gereken işlevi çağırır. Kullanıcı kaydında, örneğin burada gösterildiği gibi .h dosyasında bildirerek açıkça geçersiz kılabilirsiniz GetColumnInfo :

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

Bu, şunun için yeterlidir:

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

Ardından, kullanıcı kaydının .cpp dosyasına uygulayın GetColumnInfo .

PROVIDER_COLUMN_MAP makroları işlev oluşturmaya yardımcıdır GetColumnInfo :

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

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

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

Çalışma zamanında bir kullanıcı kaydı oluşturulduğunda, GetColumnInfo satır kümesine veya komut örneğine işaretçi almak için parametresini kullanır pThis . Komutlar ve satır kümeleri arabirimi desteklemelidir IColumnsInfo , bu nedenle sütun bilgileri bu işaretçiden alınabilir.

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

Kullanıcı kaydında geçersiz kılma GetColumnInfo işleminin daha ayrıntılı bir örneği için bkz . Tüketiciye Döndürülen Sütunları Dinamik Olarak Belirleme.

Ayrıca bkz.

OLE DB Sağlayıcı Şablonu Mimarisi