oledb2.cpp
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. //
  2. // MODULE: oledb2.cpp
  3. //
  4. // AUTHOR: Carlos Antollini <cantollini@hotmail.com>
  5. //
  6. // Copyright (c) 2001-2004. All Rights Reserved.
  7. //
  8. // Date: August 08, 2004
  9. //
  10. // Version 1.01
  11. //
  12. // This code may be used in compiled form in any way you desire. This
  13. // file may be redistributed unmodified by any means PROVIDING it is 
  14. // not sold for profit without the authors written consent, and 
  15. // providing that this notice and the authors name and all copyright 
  16. // notices remains intact. 
  17. //
  18. // An email letting me know how you are using it would be nice as well. 
  19. //
  20. // This file is provided "as is" with no expressed or implied warranty.
  21. // The author accepts no liability for any damage/loss of business that
  22. // this product may cause.
  23. //
  24. //
  25. //////////////////////////////////////////////////////////////////////
  26. #include "oledb2.h"
  27. COLEDBDataLink::COLEDBDataLink()
  28. {
  29. m_pDataLink = NULL;
  30. }
  31. COLEDBDataLink::~COLEDBDataLink()
  32. {
  33. m_pDataLink = NULL;
  34. }
  35. CString COLEDBDataLink::New(HWND hWnd /*= NULL*/)
  36. {
  37. m_pDataLink = NULL;
  38. m_pDataLink.CreateInstance(__uuidof(DataLinks));
  39. try
  40. {
  41. if(hWnd = NULL) m_pDataLink->PuthWnd(reinterpret_cast<long>(hWnd));
  42. IDispatchPtr pDisp = m_pDataLink->PromptNew();
  43. _ConnectionPtr conn = pDisp;
  44. CString strReturn = conn->GetConnectionString().copy();
  45. m_pDataLink.Release();
  46. m_pDataLink = NULL;
  47. return strReturn;
  48. }
  49. catch(_com_error &e)
  50. {
  51. throw COLEDBException(e.WCode(), e.Description());
  52. }
  53. }
  54. void COLEDBDataLink::Edit(LPCSTR lpstrConnectionString, HWND hWnd)
  55. {
  56. BOOL bRet;
  57. m_pDataLink = NULL;
  58. IDispatch* pDispatch = NULL;
  59. _ConnectionPtr pAdoConnection;
  60. m_pDataLink.CreateInstance(__uuidof(DataLinks));
  61. pAdoConnection.CreateInstance(__uuidof(ADODB::Connection));
  62. try
  63. {
  64. m_pDataLink->PuthWnd(reinterpret_cast<long>(hWnd));
  65. pAdoConnection->PutConnectionString(_bstr_t(lpstrConnectionString));
  66. pAdoConnection.QueryInterface(IID_IDispatch, (LPVOID*)&pDispatch);
  67. bRet = m_pDataLink->PromptEdit(&pDispatch) == VARIANT_TRUE;
  68. m_pDataLink.Release();
  69. pAdoConnection.Release();
  70. }
  71. catch(_com_error &e)
  72. {
  73. throw COLEDBException(e.WCode(), e.Description());
  74. }
  75. }