⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataobjectrowset.cpp

📁 The ATL OLE DB Provider templates only seem to support read-only rowsets and making them support upd
💻 CPP
字号:
#include "stdafx.h"
#include "DataObjectRowset.h"
#include "MyDataObject.h"


void CDataObjectRowset::GetColumnInformation(
   size_t column, 
   DBTYPE &dbType, 
   ULONG &size, 
   std::string &columnName, 
   DWORD &flags)
{
   ATLASSERT(m_pDataObject);
   
   dbType = DBTYPE_STR;
   size = m_pDataObject->m_columnSize;

   columnName = m_pDataObject->m_columnNames[column];
/*
   if (column == 0)
   {
      flags |= DBCOLUMNFLAGS_ISROWID;
   }
*/
}

void CDataObjectRowset::GetColumnData(
   size_t row,
   size_t column,
   DBTYPE &dbType, 
   ULONG &size, 
   void *&pData,
   bool &bIsUpdatable)
{
   ATLASSERT(m_pDataObject);

   dbType = DBTYPE_STR;
   size = m_pDataObject->m_columnSize;
   pData = m_pDataObject->GetAt(row+1, column+1);

   bIsUpdatable = false;
}

void CDataObjectRowset::UpdateColumn(size_t row, size_t column, void *pData)
{
   ATLASSERT(m_pDataObject);

   size_t length = 0;

   if (pData)
   {
      length = strlen((const char*)pData);
   }

   m_pDataObject->SetAt(row+1, column+1, (const char*)pData, length);
}

size_t CDataObjectRowset::GetNumColumns()
{
   ATLASSERT(m_pDataObject);

   return m_pDataObject->m_numCols;
}

size_t CDataObjectRowset::GetNumRows() const
{
   ATLASSERT(m_pDataObject);

   return m_pDataObject->m_numRows;
}

HRESULT CDataObjectRowset::AddRow()
{
   ATLASSERT(m_pDataObject);

   if (SUCCEEDED(m_pDataObject->AddRow()))
   {
      return S_OK;
   }

   return E_FAIL;
}

HRESULT CDataObjectRowset::RemoveRow(int nIndex)
{
   ATLASSERT(m_pDataObject);

   if (SUCCEEDED(m_pDataObject->RemoveRow(nIndex)))
   {
      return DBROWSTATUS_S_OK;
   }

   return E_FAIL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -