www.pudn.com > 6433624505.rar > LookView.cpp
// LookView.cpp : implementation file
//
#include "stdafx.h"
#include "Browser.h"
#include "LookView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLookView dialog
CLookView::CLookView(CWnd* pParent /*=NULL*/)
: CDialog(CLookView::IDD, pParent)
{
//{{AFX_DATA_INIT(CLookView)
m_Edit = _T("");
//}}AFX_DATA_INIT
}
void CLookView::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLookView)
DDX_Control(pDX, IDC_REFRESHVIEW, m_Refresh);
DDX_Control(pDX, IDC_LOOKVIEW, m_LookView);
DDX_Control(pDX, IDC_DELETEVIEW, m_Delete);
DDX_Control(pDX, IDCANCEL, m_Close);
DDX_Control(pDX, IDC_VIEWLIST, m_List);
DDX_Text(pDX, IDC_VIEWEDIT, m_Edit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLookView, CDialog)
//{{AFX_MSG_MAP(CLookView)
ON_BN_CLICKED(IDC_REFRESHVIEW, OnRefresh)
ON_BN_CLICKED(IDC_LOOKVIEW, OnLookview)
ON_BN_CLICKED(IDC_DELETEVIEW, OnDeleteview)
ON_NOTIFY(NM_CLICK, IDC_VIEWLIST, OnClickViewlist)
ON_NOTIFY(NM_DBLCLK, IDC_VIEWLIST, OnDblclkViewlist)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLookView message handlers
BOOL CLookView::OnInitDialog()
{
CDialog::OnInitDialog();
m_bitmapground.LoadBitmap(IDB_SONGROUND);
m_Close.LoadBitmaps(IDB_CLOSEONE,IDB_CLOSETWO);
m_Refresh.LoadBitmaps(IDB_REFRESHONE,IDB_REFRESHTWO);
m_LookView.LoadBitmaps(IDB_LOOKONE,IDB_LOOKTWO);
m_Delete.LoadBitmaps(IDB_DELEONE,IDB_DELETWO);
m_Edit.Empty();
m_List.SetTextColor(RGB (0, 0, 0));
m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
m_List.InsertColumn(0,_T("视图名称"),LVCFMT_CENTER,105,100);
m_List.InsertColumn(1,_T("方案"),LVCFMT_CENTER,80,100);
m_List.InsertColumn(2,_T("TEXT_LENGTH"),LVCFMT_CENTER,100,100);
m_List.InsertColumn(3,_T("TEXT"),LVCFMT_CENTER,160,100);
OnRefresh();
return TRUE;
}
void CLookView::OnRefresh()
{
m_List.DeleteAllItems();
View.clear();
CString _sql;
viewin viewinfor;
_sql = "select view_name,user,TEXT_LENGTH,TEXT from user_views";
_bstr_t sql = _sql;
try
{
pRst = pConn->Execute(sql,NULL,adCmdText);
while(!pRst->End)
{
_variant_t vViewname = pRst->Fields->GetItem(long(0))->Value;
_variant_t vViewUser = pRst->Fields->GetItem(long(1))->Value;
_variant_t vTextLength = pRst->Fields->GetItem(long(2))->Value;
_variant_t vText = pRst->Fields->GetItem(long(3))->Value;
viewinfor.viewname = (char *)_bstr_t(vViewname);
viewinfor.viewuser = (char *)_bstr_t(vViewUser);
if(vTextLength.vt == VT_NULL)
viewinfor.Textlength = "NULL";
else
viewinfor.Textlength = (char *)_bstr_t(vTextLength);
if(vText.vt == VT_NULL)
viewinfor.Text = "NULL";
else
viewinfor.Text = (char *)_bstr_t(vText);
View.push_back(viewinfor);
pRst->MoveNext();
}
for(int i = 0;i < View.size();i ++)
{
m_List.InsertItem(i,View[i].viewname);
m_List.SetItemText(i,1,View[i].viewuser);
m_List.SetItemText(i,2,View[i].Textlength);
m_List.SetItemText(i,3,View[i].Text);
}
pRst->Close();
pRst.Release();
}
catch(_com_error &e)
{
if(pConn == NULL)
AfxMessageBox("未连接数据库");
else
AfxMessageBox(e.Description());
CDialog::OnOK();
}
/**/
}
void CLookView::OnLookview()
{
cursel = m_List.GetSelectionMark();
if(cursel >= 0)
{
viewinfor.pConn = pConn;
viewinfor.select = 1;
viewinfor.tablename = View[cursel].viewname;
viewinfor.DoModal();
}
else
AfxMessageBox(_T("未选定视图"));
}
void CLookView::OnDeleteview()
{
cursel = m_List.GetSelectionMark();
if(AfxMessageBox("确定删除视图 "+View[cursel].viewname+" 吗?",1) == IDOK)
{
if(cursel >= 0)
{
CString _sql;
_sql.Format("drop table %s",View[cursel].viewname);
_bstr_t sql = _sql;
try
{
pConn->Execute(sql,NULL,adCmdText);
m_List.DeleteItem(cursel);
View.erase(View.begin()+cursel);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
}
}
}
void CLookView::OnClickViewlist(NMHDR* pNMHDR, LRESULT* pResult)
{
cursel = m_List.GetSelectionMark();
if(cursel >= 0 )
{
CString str;
str.Format("视图名称: %s 用户: %s ",View[cursel].viewname,View[cursel].viewuser);
m_Edit = str;
str.Format("\r\n创建语句:\r\n %s",View[cursel].Text);
m_Edit +=str;
this->UpdateData(false);
}
*pResult = 0;
}
void CLookView::OnDblclkViewlist(NMHDR* pNMHDR, LRESULT* pResult)
{
cursel = m_List.GetSelectionMark();
if(cursel >=0)
{
viewinfor.pConn = pConn;
viewinfor.select = 1;
viewinfor.tablename = View[cursel].viewname;
viewinfor.DoModal();
}
else
AfxMessageBox(_T("未选定视图"));
*pResult = 0;
}
void CLookView::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitMap;
m_bitmapground.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&m_bitmapground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
CDialog::OnPaint();
}
void CLookView::OnLButtonDown(UINT nFlags, CPoint point)
{
if(point.x >=5 && point.x <= 65 && point.y >= 2 && point.y <=30)
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y));
CDialog::OnLButtonDown(nFlags, point);
}