SQLStatementImpl.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "StdAfx.h"
  2. #include "SQLStatementImpl.h"
  3. #ifdef _DEBUG
  4. #define new DEBUG_NEW
  5. #endif
  6. CSQLStatementImpl::CSQLStatementImpl()
  7. {
  8. m_nCount = 0;
  9. m_nSzie = 0;
  10. m_nStatementKind = 0;
  11. }
  12. CSQLStatementImpl::~CSQLStatementImpl( )
  13. {
  14. }
  15. void CSQLStatementImpl::AddElement(LPCTSTR lpField,LPCTSTR lpValue)
  16. {
  17. if ( m_nSzie == 0)
  18. {
  19. AfxMessageBox(_T("字段数量未设置"));
  20. return;
  21. }
  22. m_nCount++;
  23. m_saFields.Add(lpField);
  24. m_saValues.Add(lpValue);
  25. }
  26. void CSQLStatementImpl::AddElement(LPCTSTR lpField, CONST INT &nValue)
  27. {
  28. if (m_nSzie == 0)
  29. {
  30. AfxMessageBox(_T("字段数量未设置"));
  31. return;
  32. }
  33. m_nCount++;
  34. m_saFields.Add(lpField);
  35. TCHAR szValue[20] = _T("");
  36. _itot_s(nValue, szValue, 10);
  37. m_saValues.Add(szValue);
  38. }
  39. CString CSQLStatementImpl::ReturnSQL()
  40. {
  41. // 释放CArray数组中预留的内存;
  42. m_saFields.FreeExtra();
  43. m_saValues.FreeExtra();
  44. int i = 0;
  45. if (m_nStatementKind == KIND_INSERT)
  46. {
  47. m_strSQL.Format(_T("insert into %s ("),m_strTableName);
  48. for ( i = 0; i < m_nCount-1; i++)
  49. {
  50. m_strSQL += m_saFields.ElementAt(i) + _T(",");
  51. }
  52. m_strSQL += m_saFields.ElementAt(m_nCount-1) + _T(") values ('");
  53. for ( i = 0; i < m_nCount-1; i++)
  54. {
  55. m_strSQL += m_saValues.ElementAt(i) + _T("','");
  56. }
  57. m_strSQL += m_saValues.ElementAt(m_nCount-1) + _T("') ");
  58. m_strSQL += m_strFilter;
  59. }
  60. else if( m_nStatementKind == KIND_UPDATE)
  61. {
  62. m_strSQL.Format(_T("update %s set "),m_strTableName);
  63. for ( i = 0; i < m_nCount-1; i++)
  64. {
  65. m_strSQL += m_saFields.ElementAt(i) + _T("='") + m_saValues.ElementAt(i)+ _T("',");
  66. }
  67. m_strSQL += m_saFields.ElementAt(m_nCount-1) + _T("='") + m_saValues.ElementAt(m_nCount-1)+ _T("' ");
  68. m_strSQL += m_strFilter;
  69. }
  70. else if ( m_nStatementKind == SELECT_LKIE_OR)
  71. {
  72. m_strSQL.Format(_T("select * from %s where "),m_strTableName);
  73. for( i = 0; i < m_nCount -1; i++)
  74. {
  75. m_strSQL += m_saFields.ElementAt(i) + _T(" like '%s") + m_saValues.ElementAt(i) + _T("%' or ");
  76. }
  77. m_strSQL += m_saFields.ElementAt(i) + _T(" like '%s") + m_saValues.ElementAt(i) + _T("%s'");
  78. }
  79. return m_strSQL;
  80. }
  81. void CSQLStatementImpl::ReturnSQL(CString &strSQL)
  82. {
  83. // 释放CArray数组中预留的内存;
  84. m_saFields.FreeExtra();
  85. m_saValues.FreeExtra();
  86. int i = 0;
  87. if (m_nStatementKind == KIND_INSERT)
  88. {
  89. strSQL.Format(_T("insert into %s ("), m_strTableName);
  90. for (i = 0; i < m_nCount - 1; i++)
  91. {
  92. strSQL += m_saFields.ElementAt(i) + _T(",");
  93. }
  94. strSQL += m_saFields.ElementAt(m_nCount - 1) + _T(") values ('");
  95. for (i = 0; i < m_nCount - 1; i++)
  96. {
  97. strSQL += m_saValues.ElementAt(i) + _T("','");
  98. }
  99. strSQL += m_saValues.ElementAt(m_nCount - 1) + _T("') ");
  100. strSQL += m_strFilter;
  101. }
  102. else if( m_nStatementKind == KIND_UPDATE)
  103. {
  104. strSQL.Format(_T("update %s set "), m_strTableName);
  105. for (i = 0; i < m_nCount - 1; i++)
  106. {
  107. strSQL += m_saFields.ElementAt(i) + _T("='") + m_saValues.ElementAt(i) + _T("',");
  108. }
  109. strSQL += m_saFields.ElementAt(m_nCount - 1) + _T("='") + m_saValues.ElementAt(m_nCount - 1) + _T("' ");
  110. strSQL += m_strFilter;
  111. }
  112. else if ( m_nStatementKind == SELECT_LKIE_OR)
  113. {
  114. strSQL.Format(_T("select * from %s where "),m_strTableName);
  115. for( i = 0; i < m_nCount -1; i++)
  116. {
  117. strSQL += m_saFields.ElementAt(i) + _T(" like '%s") + m_saValues.ElementAt(i) + _T("%' or ");
  118. }
  119. strSQL += m_saFields.ElementAt(i) + _T(" like '%s") + m_saValues.ElementAt(i) + _T("%'");
  120. }
  121. }