BookAdminDoc.cpp
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:4k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. // BookAdminDoc.cpp : implementation of the CBookAdminDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "BookAdmin.h"
  5. #include "BookAdminDoc.h"
  6. #include <atlbase.h>
  7. #include "../BooksDAL/BooksDAL_i.c"
  8. #include "DlgBookAdd.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CBookAdminDoc
  16. IMPLEMENT_DYNCREATE(CBookAdminDoc, CDocument)
  17. BEGIN_MESSAGE_MAP(CBookAdminDoc, CDocument)
  18. //{{AFX_MSG_MAP(CBookAdminDoc)
  19. ON_COMMAND(ID_BUTTON32771, OnButton32771)
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CBookAdminDoc construction/destruction
  24. CBookAdminDoc::CBookAdminDoc()
  25. {
  26. // TODO: add one-time construction code here
  27. }
  28. CBookAdminDoc::~CBookAdminDoc()
  29. {
  30. }
  31. BOOL CBookAdminDoc::OnNewDocument()
  32. {
  33. if (!CDocument::OnNewDocument())
  34. return FALSE;
  35. // TODO: add reinitialization code here
  36. // (SDI documents will reuse this document)
  37. CComPtr<IDALMyBools> mytools;
  38. mytools.CoCreateInstance(CLSID_DALMyBools);
  39. DTOBook* pAllBooks=NULL;
  40. UINT iSize=0;
  41. mytools->put_DataSource(::SysAllocString(L"tarena"));
  42. mytools->put_UID(::SysAllocString(L"scott"));
  43. mytools->put_PWD(::SysAllocString(L"tiger"));
  44. mytools->QueryAllBook(&pAllBooks,&iSize);
  45. for(int i=0;i<iSize;i++)
  46. {
  47. BookEntity* p1=new BookEntity;
  48. p1->BookIsnb=(pAllBooks+i)->BookIsnb;
  49. p1->BookName=CString((pAllBooks+i)->BookName);
  50. p1->BookAuthor=CString((pAllBooks+i)->BookAuthor);
  51. ::SysFreeString((pAllBooks+i)->BookName);
  52. ::SysFreeString((pAllBooks+i)->BookAuthor);
  53. //保存到内存上;
  54. this->allBooks.AddTail(p1);
  55. }
  56. ::CoTaskMemFree(pAllBooks);
  57. return TRUE;
  58. }
  59. /////////////////////////////////////////////////////////////////////////////
  60. // CBookAdminDoc serialization
  61. void CBookAdminDoc::Serialize(CArchive& ar)
  62. {
  63. if (ar.IsStoring())
  64. {
  65. // TODO: add storing code here
  66. }
  67. else
  68. {
  69. // TODO: add loading code here
  70. }
  71. }
  72. /////////////////////////////////////////////////////////////////////////////
  73. // CBookAdminDoc diagnostics
  74. #ifdef _DEBUG
  75. void CBookAdminDoc::AssertValid() const
  76. {
  77. CDocument::AssertValid();
  78. }
  79. void CBookAdminDoc::Dump(CDumpContext& dc) const
  80. {
  81. CDocument::Dump(dc);
  82. }
  83. #endif //_DEBUG
  84. /////////////////////////////////////////////////////////////////////////////
  85. // CBookAdminDoc commands
  86. void CBookAdminDoc::OnButton32771() 
  87. {
  88. // TODO: Add your command handler code here
  89. DlgBookAdd mydlg;//新设的类,绑定文本框和数据变量
  90. mydlg.DoModal();//弹出对话框
  91. if(mydlg.m_bIsOk)
  92. {
  93. UINT isbn=mydlg.m_bookisbn;
  94. CString name=mydlg.m_bookname;
  95. CString Author=mydlg.m_bookauthor;
  96. CString CSisbn;
  97. DTOBook* dto=new DTOBook;
  98. dto->BookIsnb=isbn;
  99. dto->BookName=name.AllocSysString();//转BSTR
  100. dto->BookAuthor=Author.AllocSysString();
  101. //将数据添加到数据库中;==>重复的代码
  102. CComPtr<IDALMyBools> mytools;
  103. mytools.CoCreateInstance(CLSID_DALMyBools);
  104. DTOBook* pAllBooks=NULL;
  105. UINT iSize=0;
  106. mytools->put_DataSource(::SysAllocString(L"tarena"));
  107. mytools->put_UID(::SysAllocString(L"scott"));
  108. mytools->put_PWD(::SysAllocString(L"tiger"));
  109. //保存数据
  110. UINT iResult=0;
  111. mytools->SaveBook(dto,&iResult);
  112. //刷新界面上的数据==>显示到界面上;
  113. POSITION ps=this->GetFirstViewPosition();
  114. while(ps!=NULL)
  115. {
  116. CView* pview=this->GetNextView(ps);
  117. if(pview->GetRuntimeClass()->m_lpszClassName=="CBookAdminView")
  118. {
  119. CListView* plist=(CListView*)pview;
  120. plist->GetListCtrl().InsertItem(0,name);
  121. plist->GetListCtrl().SetItemText(0,1,Author);
  122. }
  123. }
  124. }
  125. }