CCustomSession (CustomSess.H)
CustomSess.H contiene la dichiarazione e l'implementazione per l'oggetto sessione OLE DB. L'oggetto origine dati crea l'oggetto sessione e rappresenta una conversazione tra un consumer e un provider. È possibile aprire più sessioni simultanee per un'origine dati. L'elenco di ereditarietà per CCustomSession
il seguente:
/////////////////////////////////////////////////////////////////////////
// CCustomSession
class ATL_NO_VTABLE CCustomSession :
public CComObjectRootEx<CComSingleThreadModel>,
public IGetDataSourceImpl<CCustomSession>,
public IOpenRowsetImpl<CCustomSession>,
public ISessionPropertiesImpl<CCustomSession>,
public IObjectWithSiteSessionImpl<CCustomSession>,
public IDBSchemaRowsetImpl<CCustomSession>,
public IDBCreateCommandImpl<CCustomSession, CCustomCommand>
L'oggetto sessione eredita da IGetDataSource
, ISessionProperties
IOpenRowset
, e IDBCreateCommand
. L'interfaccia IGetDataSource
consente a una sessione di recuperare l'origine dati che l'ha creata. Ciò è utile se è necessario ottenere proprietà dall'origine dati creata o da altre informazioni che l'origine dati può fornire. L'interfaccia ISessionProperties
gestisce tutte le proprietà per la sessione. Le IOpenRowset
interfacce e IDBCreateCommand
vengono usate per eseguire il lavoro del database. Se il provider supporta i comandi, implementa l'interfaccia IDBCreateCommand
. Viene usato per creare l'oggetto comando che può eseguire comandi. Il provider implementa sempre l'oggetto IOpenRowset
. Viene usato per generare un set di righe da un provider. Si tratta di un set di righe predefinito ,ad esempio , "select * from mytable"
da un provider.
La procedura guidata genera anche tre classi di sessione: CCustomSessionColSchema
, CCustomSessionPTSchema
e CCustomSessionTRSchema
. Queste sessioni vengono usate per i set di righe dello schema. I set di righe dello schema consentono al provider di restituire metadati al consumer senza che il consumer deve eseguire una query o recuperare i dati. Il recupero dei metadati può essere molto più rapido rispetto alla ricerca delle funzionalità di un provider.
La specifica OLE DB richiede che i provider che implementano l'interfaccia IDBSchemaRowset
supportino tre tipi di set di righe dello schema: DBSCHEMA_COLUMNS, DBSCHEMA_PROVIDER_TYPES e DBSCHEMA_TABLES. La procedura guidata genera implementazioni per ogni set di righe dello schema. Ogni classe generata dalla procedura guidata contiene un Execute
metodo . In questo Execute
metodo è possibile restituire dati al provider su quali tabelle, colonne e tipi di dati sono supportati. Questi dati sono noti in fase di compilazione.