// [!HeaderName] : Declaration of the [!ClassName] class [!crlf] [!if=(FileExists, "FALSE")] #ifndef __[!UpperShortName]_H_ #define __[!UpperShortName]_H_ [!endif] [!crlf] class [!Accessor] { public: [!DTLVariables] [!crlf] [!if=(DTLProcedure, "TRUE")] BEGIN_PARAM_MAP([!Accessor]) [!DTLParameterAccessor] END_PARAM_MAP() [!crlf] [!endif] [!if=(DTLColumnMap, "TRUE")] BEGIN_COLUMN_MAP([!Accessor]) [!DTLAccessor] END_COLUMN_MAP() [!crlf] [!endif] [!if=(DTLType, "Command")] DEFINE_COMMAND([!Accessor], _T("[!DTLCommand]")) [!endif] [!crlf] // You may wish to call this function if you are inserting a record and wish to // initialize all the fields, if you are not going to explicitly set all of them. void ClearRecord() { memset(this, 0, sizeof(*this)); } }; [!crlf] [!if=(DTLType, "Command")] class [!ClassName] : public CCommand > [!else] class [!ClassName] : public CTable > [!endif] { public: HRESULT Open() { HRESULT hr; [!crlf] hr = OpenDataSource(); if (FAILED(hr)) return hr; [!crlf] return OpenRowset(); } HRESULT OpenDataSource() { HRESULT hr; CDataSource db; CDBPropSet dbinit(DBPROPSET_DBINIT); [!crlf] [!DTLOpen] [!if!=(DTLService,"")] [!crlf] // The provider does not support updatability natively, // but does support SQL. The OLE DB service components // will be invoked to provide updatability via SQL. [!endif] hr = db.Open[!DTLService](_T("[!DTLProgID]"), &dbinit); if (FAILED(hr)) return hr; [!crlf] return m_session.Open(db); } HRESULT OpenRowset() { [!if!=(DTLUpdate, "")] // Set properties for open CDBPropSet propset(DBPROPSET_ROWSET); propset.AddProperty(DBPROP_IRowsetChange, true); propset.AddProperty(DBPROP_UPDATABILITY, [!DTLUpdate]); [!crlf] [!endif] [!if=(DTLNoService, "TRUE")] // The provider is read only so the property change code has // not been generated. [!endif] [!if=(DTLType, "Command")] [!if!=(DTLUpdate,"")] return CCommand >::Open(m_session, NULL, &propset); [!else] return CCommand >::Open(m_session); [!endif] [!else] [!if!=(DTLUpdate,"")] return CTable >::Open(m_session, _T("[!DTLCommand]"), &propset); [!else] return CTable >::Open(m_session, _T("[!DTLCommand]")); [!endif] [!endif] } CSession m_session; }; [!crlf] [!if=(FileExists, "FALSE")] #endif // __[!UpperShortName]_H_ [!endif]