TAG:
The ADO Command Object to Call MostRecentOrder 1: void CADOMFC1View::OnCommandMostrecentorder() 2: { 3: _CommandPtr pCommand; 4: 5: pCommand.CreateInstance(__uuidof( Command )); 6: 7: CADOMFC1Doc * pDoc; 8: pDoc = GetDocument(); 9: 10: try 11: { 12: pCommand->ActiveConnection = pDoc->m_pConnection; 13: 14: pCommand->CommandType = adCmdStoredProc; 15: 16: pCommand->CommandText = _bstr_t("CustomerWithMostRecentOrder"); 17: 18: _variant_t vNull; 19: vNull.vt = VT_ERROR; 20: vNull.scode = DISP_E_PARAMNOTFOUND; 21: 22: _RecordsetPtr pRS; 23: 24: pRS = pCommand->Execute( &vNull, &vNull, adCmdUnknown ); 25: 26: if (!pRS->GetadoEOF()) 27: { 28: CListCtrlEx& ctlList = (CListCtrlEx&) GetListCtrl(); 29: ctlList.DeleteAllItems(); 30: while(ctlList.DeleteColumn(0)); 31: 32: ctlList.AddColumn(" Customer Number ",0); 33: ctlList.AddColumn(" First Name ",1); 34: ctlList.AddColumn(" Last Name ",2); 35: 36: int i = 0; 37: _variant_t vCustName; 38: _variant_t vFirstName; 39: _variant_t vLastName; 40: while (!pRS->GetadoEOF()) 41: { 42: vCustName = pRS->GetCollect(L"CustNumber"); 43: ctlList.AddItem(i,0,(_bstr_t) vCustName); 44: vFirstName = pRS->GetCollect(L"CustFirstName"); 45: ctlList.AddItem(i,1,(_bstr_t) vFirstName); 46: vLastName = pRS->GetCollect(L"CustLastName"); 47: ctlList.AddItem(i,2,(_bstr_t) vLastName); 48: i++; 49: pRS->MoveNext(); 50: } 51: } 52: 53: pRS->Close(); 54: } 55: catch( _com_error &e ) 56: { 57: TRACE( "Error:%08lx.\\n", e.Error()); 58: TRACE( "ErrorMessage:%s.\\n", e.ErrorMessage()); 59: TRACE( "Source:%s.\\n", (LPCTSTR) _bstr_t(e.Source())); 60: TRACE( "Description:%s.\\n", (LPCTSTR) _bstr_t(e.Description())); 61: } 62: catch(...) 63: { 64: TRACE( "\\n*** Unhandled Exception ***\\n" ); 65: } 66: } The CustomersWithOrdersSinceDate Stored Procedure 1: CREATE PROCEDURE CustomersWithOrdersSinceDate @param1 datetime AS 2: SELECT Customers.* 3: FROM Customers 4: WHERE custnumber IN 5: ( 6: SELECT Orders.customernumber 7: FROM Orders 8: WHERE OrderDate > @param1 9: ) (jacky) |