ado 조작 액세스

1. mdb 데이터베이스 가 있 습 니 다. zy 표 가 있 습 니 다. ado 로 어떻게 조작 합 니까?
먼저 하나의 종 류 를 봉 하고 다음 과 같다.
.h
class CDataSource  
{
public:
	void FreeData();
	void InitData();
	CDataSource();
	virtual ~CDataSource();
	_RecordsetPtr m_pRecordset;
	_ConnectionPtr m_pConn;
};

.cpp
CDataSource::CDataSource()
{

}

CDataSource::~CDataSource()
{
FreeData();
}

void CDataSource::InitData()
{
	::CoInitialize(NULL);
      m_pConn.CreateInstance("ADODB.Connection");
    //        
	m_pRecordset.CreateInstance("ADODB.Recordset");
	  try
	{
		   m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:1.mdb", "", "", adModeUnknown);
     // m_pConn->ConnectionString="provider=SQLOLEDB.1;uid=sa;pwd=;Database=ff";
      // m_pConn->Open("", "", "", adModeUnknown);
	  m_pRecordset->Open(  "select * from zy", _variant_t((IDispatch *) m_pConn, true),adOpenStatic, adLockReadOnly, adCmdText); 
	  }
	catch(_com_error &e)
	{
		::AfxMessageBox(e.ErrorMessage());
	}
}


void CDataSource::FreeData()
{
    if (m_pConn)
	{
		m_pConn->Close();
		m_pRecordset.Release();
		m_pConn.Release();
		CoUninitialize();
	}
}

주 대화 상자 에 대상 만 들 기 CDataSource mds;,대화 상자 에서 일어 날 때 mds.InitData();
추가:
 m_ds.m_pConn - > 실행 ( bstr t) "검색 어", NULL, adcmdText);   m_ds.m_pRecordset->Requery(adCmdUnknown); 삭제:
 m_ds.m_pConn - > 실행 ( bstr t) "삭제 문", NULL, adcmdText);  m_ds.m_pRecordset->Requery(adCmdUnknown);
수정:
 m_ds.m_pConn - > Execute (( bstr t) "수정문", NULL, adcmdText); m_ds.m_pRecordset->Requery(adCmdUnknown);
반복:
링크 가 있어 요. CListCtrl. m_list;
 while (!m_ds.m_pRecordset->EndOfFile)  {  m_list.InsertItem(i,"sdf");   m_list.SetItemText(i,0,(LPCTSTR)(_bstr_t)m_ds.m_pRecordset->GetCollect("id"));     m_list.SetItemText(i,1,(LPCTSTR)(_bstr_t)m_ds.m_pRecordset->GetCollect("name"));   m_list.SetItemText(i++,2,(LPCTSTR)(_bstr_t)m_ds.m_pRecordset->GetCollect("hobby"));   m_ds.m_pRecordset->MoveNext();  }  m_ds.m_pRecordset->MoveFirst();
 
질문:
Win 7 에서 컴 파일 된 ADO 프로그램 이 저 버 전 시스템 에서 실 행 될 수 없습니다. ADO 를 만 들 때 오류 알림: 0x 80004002
다음 문장: hr1 = m pConnection. CreateInstance ( uuidof (Connection)); 해결 방법: msado 60 Backcompat. tlb 를 다운로드 하고 주 소 는 다음 과 같 습 니 다.http://download.csdn.net/detail/evsqiezi/8244221, 관련 코드 가 져 오기 수정: \ # import "msado 60 Backcompat. tlb" no namespace rename ("EOF", "EndOFFile")

좋은 웹페이지 즐겨찾기