DataDef.cpp 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. #include "stdafx.h"
  2. #include "DataDef.h"
  3. #include "AdoImplSvr.h"
  4. /*-------------------------------------------------------------------------------*/
  5. /*
  6. 函数名: Handle
  7. 说明: 数据处理
  8. 参数:
  9. 返回: 1成功,0失败
  10. */
  11. /*-------------------------------------------------------------------------------*/
  12. int Tbl2015::Handle()
  13. {
  14. return 1;
  15. }
  16. /*-------------------------------------------------------------------------------*/
  17. /*
  18. 函数名: GetInsertSql
  19. 说明: 获取插入数据的sql
  20. 参数:
  21. 返回: 1成功,0失败
  22. */
  23. /*-------------------------------------------------------------------------------*/
  24. void Tbl2015::GetInsertSql(TCHAR* strInsert)
  25. {
  26. wsprintf(strInsert, INSERT_2015,
  27. _logid.c_str(),
  28. _account.c_str(),
  29. _username.c_str(),
  30. _logdate.c_str(),
  31. _opttype.c_str(),
  32. _snno.c_str(),
  33. _desc.c_str());
  34. }
  35. /************************************************************************/
  36. /*
  37. 函数:GetTbl_2015RecordSet
  38. 描述:获取表[2015]的记录集;
  39. 参数:
  40. IN: pTableName 表名;
  41. IN: pFilters 查找条件;
  42. IN: nFieldCount 查找的字段数量;
  43. OUT: vtRSet 返回的记录集对应的结构体数组;
  44. 返回:成功返回记录集大小, 失败返回 -1;
  45. */
  46. /************************************************************************/
  47. INT Tbl2015::GetRecordSet(IN AdoImpl* pAdoImpl, IN CONST TCHAR *pTableName, IN CONST TCHAR *pFilters, IN CString& strSQL, INT &nFieldCount, OUT CArray<CStringArray, CStringArray>& arr)
  48. {
  49. if(pAdoImpl == NULL)
  50. return -1;
  51. TCHAR szSQL[1024] = _T("");
  52. if(pFilters == NULL || _tcscmp(pFilters,_T("")) == 0)
  53. _stprintf(szSQL,_T("select count(*) as cot from %s"), pTableName);
  54. else
  55. _stprintf(szSQL, _T("select count(*) as cot from %s where %s"), pTableName, pFilters);
  56. int nRecordCount = 0;
  57. _variant_t vtFieldValue;
  58. bool bResult = false;
  59. EnterCriticalSection( &pAdoImpl->m_csAdo );
  60. bResult = pAdoImpl->GetADODateBaseStatus();
  61. if( false == bResult )
  62. {
  63. LeaveCriticalSection( &pAdoImpl->m_csAdo );
  64. return -1;
  65. }
  66. CADORecordset* pRSet = new CADORecordset(pAdoImpl->m_pADODatabase);
  67. LeaveCriticalSection( &pAdoImpl->m_csAdo );
  68. if( NULL == pRSet )
  69. return -1;
  70. bResult = pAdoImpl->OpenADORecordSet(pRSet, szSQL);
  71. if( false == bResult )
  72. {
  73. pAdoImpl->DeleteADORecordSet(pRSet);
  74. return -1;
  75. }
  76. if( !pRSet->IsFieldNull(_T("cot")) )
  77. pRSet->GetFieldValue(_T("cot"), nRecordCount);
  78. else
  79. {
  80. pAdoImpl->DeleteADORecordSet(pRSet);
  81. return -1;
  82. }
  83. pAdoImpl->DeleteADORecordSet(pRSet);
  84. pRSet = new CADORecordset(pAdoImpl->m_pADODatabase);
  85. if( NULL == pRSet )
  86. return -1;
  87. bResult = pAdoImpl->OpenADORecordSet(pRSet, strSQL);
  88. if( false == bResult )
  89. {
  90. pAdoImpl->DeleteADORecordSet(pRSet);
  91. return -1;
  92. }
  93. nFieldCount = pRSet->GetFieldCount();
  94. arr.SetSize(nRecordCount, 1);
  95. int i=0;
  96. try
  97. {
  98. while(!pRSet->IsEOF())
  99. {
  100. Tbl2015 tagVal;
  101. arr.ElementAt(i).RemoveAll();
  102. if( !pRSet->IsFieldNull(_T("LogID")) )
  103. {
  104. pRSet->GetFieldValue(_T("LogID"), vtFieldValue);
  105. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  106. }
  107. else
  108. arr.ElementAt(i).Add(_T(""));
  109. if( !pRSet->IsFieldNull(_T("Account")) )
  110. {
  111. pRSet->GetFieldValue(_T("Account"), vtFieldValue);
  112. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  113. }
  114. else
  115. arr.ElementAt(i).Add(_T(""));
  116. if( !pRSet->IsFieldNull(_T("UserName")) )
  117. {
  118. pRSet->GetFieldValue(_T("UserName"), vtFieldValue);
  119. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  120. }
  121. else
  122. arr.ElementAt(i).Add(_T(""));
  123. if( !pRSet->IsFieldNull(_T("LogDate")) )
  124. {
  125. pRSet->GetFieldValue(_T("LogDate"), vtFieldValue);
  126. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  127. }
  128. else
  129. arr.ElementAt(i).Add(_T(""));
  130. if( !pRSet->IsFieldNull(_T("OptType")) )
  131. {
  132. pRSet->GetFieldValue(_T("OptType"), vtFieldValue);
  133. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  134. }
  135. else
  136. arr.ElementAt(i).Add(_T(""));
  137. if( !pRSet->IsFieldNull(_T("SNNo")) )
  138. {
  139. pRSet->GetFieldValue(_T("SNNo"), vtFieldValue);
  140. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  141. }
  142. else
  143. arr.ElementAt(i).Add(_T(""));
  144. if( !pRSet->IsFieldNull(_T("LogDesc")) )
  145. {
  146. pRSet->GetFieldValue(_T("LogDesc"), vtFieldValue);
  147. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  148. }
  149. else
  150. arr.ElementAt(i).Add(_T(""));
  151. pRSet->MoveNext();
  152. i++;
  153. }
  154. }
  155. catch(CException *e)
  156. {
  157. TCHAR szError[1024] = { 0 };
  158. e->GetErrorMessage(szError, 1024);
  159. WriteLogin(CString(szError));
  160. e->Delete();
  161. pAdoImpl->DeleteADORecordSet(pRSet);
  162. return -1;
  163. }
  164. pAdoImpl->DeleteADORecordSet(pRSet);
  165. return nRecordCount;
  166. }
  167. INT Tbl2015::GetRecordSet(IN AdoImpl* pAdoImpl, IN CONST TCHAR *pTableName, IN CONST TCHAR *pFilters, CStringArray& fieldArr, INT &nFieldCount, OUT CArray<CStringArray, CStringArray>& arr)
  168. {
  169. if(pAdoImpl == NULL || fieldArr.GetSize())
  170. return -1;
  171. TCHAR szSQL[1024] = _T("");
  172. if(pFilters == NULL || _tcscmp(pFilters,_T("")) == 0)
  173. _stprintf(szSQL,_T("select count(*) as cot from %s"), pTableName);
  174. else
  175. _stprintf(szSQL, _T("select count(*) as cot from %s where %s"), pTableName, pFilters);
  176. int nRecordCount = 0;
  177. _variant_t vtFieldValue;
  178. bool bResult = false;
  179. EnterCriticalSection( &pAdoImpl->m_csAdo );
  180. bResult = pAdoImpl->GetADODateBaseStatus();
  181. if( false == bResult )
  182. {
  183. LeaveCriticalSection( &pAdoImpl->m_csAdo );
  184. return -1;
  185. }
  186. CADORecordset* pRSet = new CADORecordset(pAdoImpl->m_pADODatabase);
  187. LeaveCriticalSection( &pAdoImpl->m_csAdo );
  188. if( NULL == pRSet )
  189. return -1;
  190. bResult = pAdoImpl->OpenADORecordSet(pRSet, szSQL);
  191. if( false == bResult )
  192. {
  193. pAdoImpl->DeleteADORecordSet(pRSet);
  194. return -1;
  195. }
  196. if( !pRSet->IsFieldNull(_T("cot")) )
  197. pRSet->GetFieldValue(_T("cot"), nRecordCount);
  198. else
  199. {
  200. pAdoImpl->DeleteADORecordSet(pRSet);
  201. return -1;
  202. }
  203. pAdoImpl->DeleteADORecordSet(pRSet);
  204. pRSet = new CADORecordset(pAdoImpl->m_pADODatabase);
  205. if( NULL == pRSet )
  206. return -1;
  207. CString strOutField = _T("");
  208. int nSize = fieldArr.GetSize();
  209. int i=0;
  210. for(i = 0; i<nSize; i++)
  211. {
  212. if(i != 0)
  213. strOutField += _T(",");
  214. strOutField += fieldArr.ElementAt(i);
  215. }
  216. CString strSQL = _T("select ") + strOutField + _T(" from ") + (*pTableName);
  217. if(pFilters != NULL && _tcscmp(pFilters,_T("")) != 0)
  218. strSQL += _T(" where ") + (*pFilters);
  219. bResult = pAdoImpl->OpenADORecordSet(pRSet, strSQL);
  220. if( false == bResult )
  221. {
  222. pAdoImpl->DeleteADORecordSet(pRSet);
  223. return -1;
  224. }
  225. nFieldCount = pRSet->GetFieldCount();
  226. arr.SetSize(nRecordCount, 1);
  227. i = 0;
  228. try
  229. {
  230. while(!pRSet->IsEOF())
  231. {
  232. Tbl2015 tagVal;
  233. arr.ElementAt(i).RemoveAll();
  234. if( !pRSet->IsFieldNull(_T("LogID")) )
  235. {
  236. pRSet->GetFieldValue(_T("LogID"), vtFieldValue);
  237. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  238. }
  239. else
  240. arr.ElementAt(i).Add(_T(""));
  241. if( !pRSet->IsFieldNull(_T("Account")) )
  242. {
  243. pRSet->GetFieldValue(_T("Account"), vtFieldValue);
  244. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  245. }
  246. else
  247. arr.ElementAt(i).Add(_T(""));
  248. if( !pRSet->IsFieldNull(_T("UserName")) )
  249. {
  250. pRSet->GetFieldValue(_T("UserName"), vtFieldValue);
  251. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  252. }
  253. else
  254. arr.ElementAt(i).Add(_T(""));
  255. if( !pRSet->IsFieldNull(_T("LogDate")) )
  256. {
  257. pRSet->GetFieldValue(_T("LogDate"), vtFieldValue);
  258. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  259. }
  260. else
  261. arr.ElementAt(i).Add(_T(""));
  262. if( !pRSet->IsFieldNull(_T("OptType")) )
  263. {
  264. pRSet->GetFieldValue(_T("OptType"), vtFieldValue);
  265. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  266. }
  267. else
  268. arr.ElementAt(i).Add(_T(""));
  269. if( !pRSet->IsFieldNull(_T("SNNo")) )
  270. {
  271. pRSet->GetFieldValue(_T("SNNo"), vtFieldValue);
  272. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  273. }
  274. else
  275. arr.ElementAt(i).Add(_T(""));
  276. if( !pRSet->IsFieldNull(_T("LogDesc")) )
  277. {
  278. pRSet->GetFieldValue(_T("LogDesc"), vtFieldValue);
  279. arr.ElementAt(i).Add((TCHAR*)(_bstr_t)vtFieldValue);
  280. }
  281. else
  282. arr.ElementAt(i).Add(_T(""));
  283. pRSet->MoveNext();
  284. i++;
  285. }
  286. }
  287. catch(CException *e)
  288. {
  289. TCHAR szError[1024] = { 0 };
  290. e->GetErrorMessage(szError, 1024);
  291. WriteLogin(CString(szError));
  292. e->Delete();
  293. pAdoImpl->DeleteADORecordSet(pRSet);
  294. return -1;
  295. }
  296. pAdoImpl->DeleteADORecordSet(pRSet);
  297. return nRecordCount;
  298. }