?? adodblibdemoview.cpp
字號:
// AdoDbLibDemoView.cpp : implementation of the CAdoDbLibDemoView class
//
#include "stdafx.h"
#include "AdoDbLibDemo.h"
#include "AdoDbLibDemoDoc.h"
#include "AdoDbLibDemoView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView
IMPLEMENT_DYNCREATE(CAdoDbLibDemoView, CListView)
BEGIN_MESSAGE_MAP(CAdoDbLibDemoView, CListView)
//{{AFX_MSG_MAP(CAdoDbLibDemoView)
ON_COMMAND(ID_OPENCONN, OnOpenconn)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView construction/destruction
CAdoDbLibDemoView::CAdoDbLibDemoView()
{
// TODO: add construction code here
}
CAdoDbLibDemoView::~CAdoDbLibDemoView()
{
}
BOOL CAdoDbLibDemoView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CListView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView drawing
void CAdoDbLibDemoView::OnDraw(CDC* pDC)
{
CAdoDbLibDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
void CAdoDbLibDemoView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
CListCtrl &theListCtrl=GetListCtrl();
theListCtrl.DeleteAllItems();
theListCtrl.ModifyStyle(NULL,LVS_REPORT);
theListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
theListCtrl.InsertColumn(0,"編號",LVCFMT_LEFT,80);
theListCtrl.InsertColumn(1,"姓名",LVCFMT_LEFT,100);
theListCtrl.InsertColumn(2,"出生日期",LVCFMT_LEFT,120);
theListCtrl.InsertColumn(3,"備注",LVCFMT_LEFT,300);
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl().
}
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView printing
BOOL CAdoDbLibDemoView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CAdoDbLibDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CAdoDbLibDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView diagnostics
#ifdef _DEBUG
void CAdoDbLibDemoView::AssertValid() const
{
CListView::AssertValid();
}
void CAdoDbLibDemoView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
CAdoDbLibDemoDoc* CAdoDbLibDemoView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAdoDbLibDemoDoc)));
return (CAdoDbLibDemoDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CAdoDbLibDemoView message handlers
void CAdoDbLibDemoView::OnOpenconn()
{
// TODO: Add your command handler code here
//打開數據庫連接,產生bReOpen為FALSE,當第二次執行本代碼時候,
//將不會重新打開數據庫連接,除非數據庫連接已經斷開
if(!GetDocument()->m_adoDBConn.OpenConnection(
"driver={sql server};server=(local);DataBase=Northwind;uid=sa ; pwd="
))
{
return ;
}
CListCtrl &theListCtrl=GetListCtrl();
theListCtrl.DeleteAllItems();
CString strSQL("select * from Employees");
_RecordsetPtr* prsThis=NULL;
prsThis=new _RecordsetPtr;
//2.如果記錄集打開失敗
if(!(GetDocument()->m_adoDBConn.OpenRecordset(strSQL,prsThis)))
return;
//3.沒有記錄
if((*prsThis)->adoEOF)
return;
//4.定義訪問字段的類實例
CBBRstValues rsv(GetDocument()->m_adoDBConn.GetConnection(),prsThis);
long lID;
//得到數字(第一條記錄)
rsv.GetValueLong(&lID,"EMployeeID");
TRACE1("Get ID:%d",lID);
//也可以rsv.GetValueLong(&lID,0);
//建議用字段名,對存儲過程返回的常量(沒有字段名),可以用序號
CString strEID,strEName,strEBirthDay,strENotes;
int i=0;
while(!(*prsThis)->adoEOF)
{
rsv.GetValueStr(strEID,"EMployeeID");
theListCtrl.InsertItem(i,strEID);
rsv.GetValueStr(strEName,"LastName");
//得到DateTime字段,取年月日十位
rsv.GetValueStr(strEBirthDay,"BirthDate",10);
//得到nText字段
rsv.GetValText(strENotes,CString("Notes"));
theListCtrl.SetItemText(i,1,strEName);
theListCtrl.SetItemText(i,2,strEBirthDay);
theListCtrl.SetItemText(i,3,strENotes);
//移動記錄到下一個記錄
(*prsThis)->MoveNext();
i++;
}
//清除現場
(*prsThis)->Close();
delete prsThis;
prsThis=NULL;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -