DBConnection.cpp 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403
  1. ///////////////////////////////////////////////////////////
  2. //
  3. // File:
  4. // DBConnection.cpp
  5. // Author:
  6. // 严晓斌
  7. // Date:
  8. // 2008-05-23
  9. // Comments:
  10. // 主要处理数据库连接任务
  11. //
  12. ///////////////////////////////////////////////////////////
  13. #include "stdafx.h"
  14. #include "Global.h"
  15. //#include <windows.h>
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #include <memory.h>
  19. #include "mdlProject.h"
  20. //#include "Ado.h"
  21. #include "DBConnection.h"
  22. //#include <list>
  23. HANDLE m_hDBConnectionThread = NULL;
  24. BOOL m_bBeep = FALSE;
  25. BOOL m_bDBConnected = FALSE;
  26. BOOL DBConnectionThreadStart()
  27. {
  28. HANDLE hThread = NULL;
  29. INT iConfMemberIndex = 0;
  30. INT iConfGroupIndex = 0;
  31. //数据库连接串
  32. if (!_stricmp(g_strDBType, "SQL SERVER"))
  33. sprintf(g_strConnectString, "Provider=sqloledb;Data Source=%s,1433;Initial Catalog=%s;User Id=%s;Password=%s; ",
  34. g_strServerName, g_strDataBaseName, g_strUserName, g_strPassword);
  35. else if (!_stricmp(g_strDBType, "ACCESS97"))
  36. sprintf(g_strConnectString, "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=%s", g_strAccessFile);
  37. else if (!_stricmp(g_strDBType, "ACCESS2000"))
  38. sprintf(g_strConnectString, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s", g_strAccessFile);
  39. else if(!_stricmp(g_strDBType, "PGSQL"))
  40. sprintf(g_strConnectString, "DRIVER={PostgreSQL ODBC Driver(UNICODE)}; SERVER=%s; port=5432; DATABASE=%s; UID=%s; PWD=%s;",
  41. g_strServerName, g_strDataBaseName, g_strDBUserName, g_strPassword);
  42. else
  43. sprintf(g_strConnectString, "Provider=sqloledb;Data Source=%s;Initial Catalog=%s;User Id=%s;Password=%s; ",
  44. g_strServerName, g_strDataBaseName, g_strUserName, g_strPassword);
  45. g_pADODatabase = new CADODatabase;
  46. if (g_pADODatabase != NULL)
  47. {
  48. g_pADODatabase->SetConnectionString(g_strConnectString);
  49. if (FALSE == g_pADODatabase->Open())
  50. {
  51. g_pADODatabase->Close();
  52. delete g_pADODatabase;
  53. g_pADODatabase = NULL;
  54. m_bBeep = TRUE;
  55. }
  56. else
  57. {
  58. m_bDBConnected = TRUE;
  59. }
  60. }
  61. return TRUE;
  62. }
  63. BOOL DBConnectionThreadEnd()
  64. {
  65. if ((g_pADODatabase != NULL) && (g_pADODatabase->IsOpen()))
  66. {
  67. g_pADODatabase->Close();
  68. delete g_pADODatabase;
  69. g_pADODatabase = NULL;
  70. }
  71. return TRUE;
  72. }
  73. //获取表最大的ID, 通用函数
  74. INT GetMaxID( CHAR *pTableName, CHAR *pFieldName, CHAR *pMaxID )
  75. {
  76. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  77. list<string> list1;
  78. list<string>::iterator it;
  79. sprintf(strSQLText, "select max(%s) as maxid from %s", pFieldName, pTableName);
  80. int nRet = GetFieldValueList1(strSQLText, list1);
  81. if( 0 == list1.size() )
  82. {
  83. return 0;
  84. }
  85. if( nRet != -1 )
  86. {
  87. strcpy(pMaxID, list1.begin()->c_str());
  88. }
  89. for( it = list1.begin(); it != list1.end(); )
  90. {
  91. list1.erase(it++);
  92. }
  93. return nRet;
  94. }
  95. //获取t_dev_variant变量属性表字段ID的最大值
  96. INT GetVarMaxID( CHAR *pMaxID )
  97. {
  98. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  99. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  100. CString strID;
  101. CADORecordset* pRSet = NULL;
  102. INT iRetCode = 0;
  103. int nCount = 0;
  104. try
  105. {
  106. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  107. {
  108. pRSet = new CADORecordset(g_pADODatabase);
  109. if (NULL == pRSet)
  110. {
  111. return -1;
  112. }
  113. sprintf(strSQLText, "select max(id) as maxid from t_dev_variant");
  114. iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery);
  115. if (iRetCode == 0)
  116. {
  117. delete pRSet;
  118. pRSet = NULL;
  119. return -1;
  120. }
  121. nCount = pRSet->GetRecordCount();
  122. if (nCount == 0)
  123. {
  124. if( pRSet )
  125. {
  126. delete pRSet;
  127. pRSet = NULL;
  128. }
  129. return 0;
  130. }
  131. // 获取最大的设备ID
  132. if (!pRSet->IsFieldNull("maxid"))
  133. {
  134. pRSet->GetFieldValue("maxid", strID);
  135. strcpy(pMaxID, (char *)(LPCTSTR)strID);
  136. }
  137. if( pRSet )
  138. {
  139. delete pRSet;
  140. pRSet = NULL;
  141. }
  142. return nCount;
  143. }
  144. }
  145. catch (_com_error &e)
  146. {
  147. if( pRSet )
  148. {
  149. delete pRSet;
  150. pRSet = NULL;
  151. }
  152. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  153. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  154. return -1;
  155. }
  156. if( pRSet )
  157. {
  158. delete pRSet;
  159. pRSet = NULL;
  160. }
  161. return 0;
  162. }
  163. //插入设备资料
  164. INT InsertVarInfo(int nID, CHAR *pUid, CHAR *pVarName, CHAR *pDesc, int nVarTypeID, int nDataLen,
  165. CHAR *pOnDesc, CHAR *pOffDesc, int nMaxValues, int nMinValues,
  166. int nMaxScale, int nMinScale, int nLowerLimit, int nUpperLimit,
  167. int nNormalState, CHAR *pSetValue, int nRearm, int nOffset, CHAR *pUnit,
  168. int nCollentFreq, float fCoef, int nWarnLevel, int nReadOnly, int nIsSave,
  169. int nRealtimeFlag, int nRecCurve, int nIsDDE, int nRegNum, int nFuncID,
  170. int nChildID, int nVarItemID, CHAR *pSnmpOid, CHAR *pField, int nDevID,
  171. int nRegStartAddr, CHAR *pRs232Cmd, CHAR *pRs232Type, int nRs232Index,
  172. int nIdentifyTime, int nReDetectTime, int nNormIsNotice,
  173. char *pStrReserved1, char *pStrReserved2, char *pStrReserved3, char *pStrReserved4,
  174. char *pStrReserved5, char *pStrReserved6, char *pStrReserved7, char *pStrReserved8,
  175. char *pStrReserved9, char *pStrReserved10,
  176. int nReserved1, int nReserved2, int nReserved3, int nReserved4, int nReserved5,
  177. int nReserved6, int nReserved7, int nReserved8, int nReserved9, int nReserved10,
  178. int bReserved1, int bReserved2, int bReserved3, int bReserved4, int bReserved5,
  179. int bReserved6, int bReserved7, int bReserved8, int bReserved9, int bReserved10)
  180. {
  181. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  182. CHAR strSQLText[409600] = "";
  183. INT iRetCode = 0;
  184. CString strIsDDE, strRecCurve, strRealtimeFlag, strIsSave, strNormalIsNotice, strReadOnly;
  185. CString strbResrved1, strbResrved2, strbResrved3, strbResrved4, strbResrved5;
  186. CString strbResrved6, strbResrved7, strbResrved8, strbResrved9, strbResrved10;
  187. strIsDDE = (nIsDDE == 0)?"FALSE":"TRUE";
  188. strRecCurve = (nRecCurve == 0)?"FALSE":"TRUE";
  189. strRealtimeFlag = (nRealtimeFlag == 0)?"FALSE":"TRUE";
  190. strIsSave = (nIsSave == 0)?"FALSE":"TRUE";
  191. strNormalIsNotice = (nNormIsNotice == 0)?"FALSE":"TRUE";
  192. strbResrved1 = (bReserved1 == 0)?"FALSE":"TRUE";
  193. strbResrved2 = (bReserved2 == 0)?"FALSE":"TRUE";
  194. strbResrved3 = (bReserved3 == 0)?"FALSE":"TRUE";
  195. strbResrved4 = (bReserved4 == 0)?"FALSE":"TRUE";
  196. strbResrved5 = (bReserved5 == 0)?"FALSE":"TRUE";
  197. strbResrved6 = (bReserved6 == 0)?"FALSE":"TRUE";
  198. strbResrved7 = (bReserved7 == 0)?"FALSE":"TRUE";
  199. strbResrved8 = (bReserved8 == 0)?"FALSE":"TRUE";
  200. strbResrved9 = (bReserved9 == 0)?"FALSE":"TRUE";
  201. strbResrved10 = (bReserved10 == 0)?"FALSE":"TRUE";
  202. strReadOnly.Format("%d", nReadOnly);
  203. try
  204. {
  205. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  206. {
  207. if (!_stricmp(g_strDBType, "SQL SERVER"))
  208. {
  209. sprintf(strSQLText, "insert into t_dev_variant(id, uid, varname, description, vartypeid, " \
  210. "datalen, ondesc, offdesc, maxvalues, minvalues, maxconvtrate, minconvtrate, " \
  211. "lowerlimit, upperlimit, normalstate, setvalue, rearm, [offsets], unit, collectfrequence, " \
  212. "coefficient, warnlevel, readonly, issave, realtimeflag, reccurve, isdde, " \
  213. "registernum, funcid, childid, var_item_id, snmpoid, fields, devtypeid, address, " \
  214. "rs232cmd, rs232type, rs232index, identifytime, redetecttime, normalisnotice, " \
  215. "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \
  216. "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, "\
  217. "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \
  218. "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \
  219. "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \
  220. "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10) values(" \
  221. "%d, \'%s\', \'%s\', \'%s\', %d, " \
  222. "%d, \'%s\', \'%s\', %d, %d, %d, %d, " \
  223. "%d, %d, %d, \'%s\', %d, %d, \'%s\', %d," \
  224. "%.10f, %d, \'%s\', %d, %d, %d, %d," \
  225. "%d, %d, %d, %d, \'%s\', \'%s\', %d, %d, " \
  226. "\'%s\', \'%s\', %d, %d, %d, %d, " \
  227. "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \
  228. "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \
  229. "%d, %d, %d, %d, %d, " \
  230. "%d, %d, %d, %d, %d, " \
  231. "%d, %d, %d, %d, %d, " \
  232. "%d, %d, %d, %d, %d)",
  233. nID, pUid, pVarName, pDesc, nVarTypeID,
  234. nDataLen, pOnDesc, pOffDesc, nMaxValues, nMinValues, nMaxScale, nMinScale,
  235. nLowerLimit, nUpperLimit, nNormalState, pSetValue, nRearm, nOffset, pUnit, nCollentFreq,
  236. fCoef, nWarnLevel, strReadOnly, nIsSave, nRealtimeFlag, nRecCurve, nIsDDE,
  237. nRegNum, nFuncID, nChildID, nVarItemID, pSnmpOid, pField, nDevID, nRegStartAddr,
  238. pRs232Cmd, pRs232Type, nRs232Index, nIdentifyTime, nReDetectTime, nNormIsNotice,
  239. pStrReserved1, pStrReserved2, pStrReserved3, pStrReserved4, pStrReserved5,
  240. pStrReserved6, pStrReserved7, pStrReserved8, pStrReserved9, pStrReserved10,
  241. nReserved1, nReserved2, nReserved3, nReserved4, nReserved5,
  242. nReserved6, nReserved7, nReserved8, nReserved9, nReserved10,
  243. bReserved1, bReserved2, bReserved3, bReserved4, bReserved5,
  244. bReserved6, bReserved7, bReserved8, bReserved9, bReserved10);
  245. }
  246. else if (!_stricmp(g_strDBType, "ACCESS97"))
  247. {
  248. sprintf(strSQLText, "select tel, mobiletel, fax, email from " \
  249. "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \
  250. "where a.uid = \'%s\' and b.status = 0 or b.status is null and b.uid <> 'admin'",
  251. pUid);
  252. }
  253. else if (!_stricmp(g_strDBType, "ACCESS2000"))
  254. {
  255. sprintf(strSQLText, "select tel, mobiletel, fax, email from " \
  256. "t_role_equip a left outer join t_user_info b on a.userid = b.uid " \
  257. "where a.uid = \'%s\' and b.status = 0 or b.status is null and b.uid <> 'admin'",
  258. pUid);
  259. }
  260. else if(!_stricmp(g_strDBType, "PGSQL"))
  261. {
  262. sprintf(strSQLText, "insert into t_dev_variant(id, uid, varname, description, vartypeid, " \
  263. "datalen, ondesc, offdesc, maxvalues, minvalues, maxconvtrate, minconvtrate, " \
  264. "lowerlimit, upperlimit, normalstate, setvalue, rearm, offsets, unit, collectfrequence, " \
  265. "coefficient, warnlevel, readonly, issave, realtimeflag, reccurve, isdde, " \
  266. "registernum, funcid, childid, var_item_id, snmpoid, fields, devtypeid, address, " \
  267. "rs232cmd, rs232type, rs232index, identifytime, redetecttime, normalisnotice, " \
  268. "strreserved1, strreserved2, strreserved3, strreserved4, strreserved5, " \
  269. "strreserved6, strreserved7, strreserved8, strreserved9, strreserved10, "\
  270. "intreserved1, intreserved2, intreserved3, intreserved4, intreserved5, " \
  271. "intreserved6, intreserved7, intreserved8, intreserved9, intreserved10, " \
  272. "boolreserved1, boolreserved2, boolreserved3, boolreserved4, boolreserved5, " \
  273. "boolreserved6, boolreserved7, boolreserved8, boolreserved9, boolreserved10) values(" \
  274. "%d, \'%s\', \'%s\', \'%s\', %d, " \
  275. "%d, \'%s\', \'%s\', %d, %d, %d, %d, " \
  276. "%d, %d, %d, \'%s\', %d, %d, \'%s\', %d," \
  277. "%.10f, %d, \'%s\', %s, %s, %s, %s," \
  278. "%d, %d, %d, %d, \'%s\', \'%s\', %d, %d, " \
  279. "\'%s\', \'%s\', %d, %d, %d, %s, " \
  280. "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \
  281. "\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', " \
  282. "%d, %d, %d, %d, %d, " \
  283. "%d, %d, %d, %d, %d, " \
  284. "%s, %s, %s, %s, %s, " \
  285. "%s, %s, %s, %s, %s)",
  286. nID, pUid, pVarName, pDesc, nVarTypeID,
  287. nDataLen, pOnDesc, pOffDesc, nMaxValues, nMinValues, nMaxScale, nMinScale,
  288. nLowerLimit, nUpperLimit, nNormalState, pSetValue, nRearm, nOffset, pUnit, nCollentFreq,
  289. fCoef, nWarnLevel, strReadOnly, strIsSave, strRealtimeFlag, strRecCurve, strIsDDE,
  290. nRegNum, nFuncID, nChildID, nVarItemID, pSnmpOid, pField, nDevID, nRegStartAddr,
  291. pRs232Cmd, pRs232Type, nRs232Index, nIdentifyTime, nReDetectTime, strNormalIsNotice,
  292. pStrReserved1, pStrReserved2, pStrReserved3, pStrReserved4, pStrReserved5,
  293. pStrReserved6, pStrReserved7, pStrReserved8, pStrReserved9, pStrReserved10,
  294. nReserved1, nReserved2, nReserved3, nReserved4, nReserved5,
  295. nReserved6, nReserved7, nReserved8, nReserved9, nReserved10,
  296. strbResrved1, strbResrved2, strbResrved3, strbResrved4, strbResrved5,
  297. strbResrved6, strbResrved7, strbResrved8, strbResrved9, strbResrved10);
  298. }
  299. iRetCode = g_pADODatabase->Execute(strSQLText);
  300. }
  301. }
  302. catch (_com_error &e)
  303. {
  304. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  305. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  306. return 0;
  307. }
  308. return iRetCode;
  309. }
  310. //获取t_dev_variant_item资料
  311. INT GetVarItem( CHAR *pUid, int nVarItemID )
  312. {
  313. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  314. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  315. CString strID;
  316. CADORecordset* pRSet = NULL;
  317. INT iRetCode = 0;
  318. int nCount = 0;
  319. try
  320. {
  321. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  322. {
  323. pRSet = new CADORecordset(g_pADODatabase);
  324. if (NULL == pRSet)
  325. {
  326. return -1;
  327. }
  328. sprintf(strSQLText, "select id from t_dev_variant_item where uid = \'%s\' and id = %d", pUid, nVarItemID);
  329. iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery);
  330. if (iRetCode == 0)
  331. {
  332. delete pRSet;
  333. pRSet = NULL;
  334. return -1;
  335. }
  336. nCount = pRSet->GetRecordCount();
  337. if (nCount == 0)
  338. {
  339. if( pRSet )
  340. {
  341. delete pRSet;
  342. pRSet = NULL;
  343. }
  344. return 0;
  345. }
  346. if( pRSet )
  347. {
  348. delete pRSet;
  349. pRSet = NULL;
  350. }
  351. return nCount;
  352. }
  353. }
  354. catch (_com_error &e)
  355. {
  356. if( pRSet )
  357. {
  358. delete pRSet;
  359. pRSet = NULL;
  360. }
  361. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  362. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  363. return -1;
  364. }
  365. if( pRSet )
  366. {
  367. delete pRSet;
  368. pRSet = NULL;
  369. }
  370. return 0;
  371. }
  372. //插入Bit位表
  373. INT InsertVarItemInfo(int nID, CHAR *pUid, int nStartBit, int nEndBit)
  374. {
  375. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  376. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  377. INT iRetCode = 0;
  378. try
  379. {
  380. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  381. {
  382. sprintf(strSQLText, "insert into t_dev_variant_item(id, uid, startbit, endbit) values(" \
  383. "%d, \'%s\', %d, %d)",
  384. nID, pUid, nStartBit, nEndBit);
  385. iRetCode = g_pADODatabase->Execute(strSQLText);
  386. }
  387. }
  388. catch (_com_error &e)
  389. {
  390. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  391. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  392. return 0;
  393. }
  394. return iRetCode;
  395. }
  396. //插入数据记录
  397. INT InsertDataRecord(
  398. CHAR* pDevName, // 设备名称
  399. CHAR* pHappenTime, // 发生时间
  400. CHAR* pVarName, // 变量名称
  401. CHAR *pVarDesc, // 变量描述
  402. double dbCurrValue // 当前值
  403. )
  404. {
  405. INT iRetCode = 0;
  406. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  407. static int iMaxID = 1;
  408. //CHAR chMaxID[MAX_ID] = {0};
  409. //GetMaxID("t_data_rec", "id", chMaxID);
  410. //if( 0 == atoi(chMaxID) )
  411. //{
  412. // iMaxID = 1;
  413. //}
  414. //else
  415. //{
  416. // iMaxID = atoi(chMaxID) + 1;
  417. //}
  418. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  419. {
  420. sprintf(strSQLText, "insert into t_data_rec(id,devname, happentime,varname,vardesc,datavalue) values(" \
  421. "%d, \'%s\', \'%s\', \'%s\', \'%s\', %.1f)",
  422. iMaxID, pDevName, pHappenTime,pVarName, pVarDesc, dbCurrValue );
  423. iRetCode = g_pADODatabase->Execute(strSQLText);
  424. iMaxID++;
  425. }
  426. return iRetCode;
  427. }
  428. //插入控制器记录
  429. INT InsertControlInfo(
  430. int nbrandtype,
  431. CHAR* scontrolname,
  432. CHAR* ssn,
  433. int nwordmode,
  434. int ncomport,
  435. CHAR* sip,
  436. CHAR* sport,
  437. int nforbid,
  438. int ndoorconut,
  439. CHAR* sdoor1,
  440. CHAR* sdoor2,
  441. CHAR* sdoor3,
  442. CHAR* sdoor4,
  443. CHAR* sdoor5,
  444. CHAR* sdoor6,
  445. CHAR* sdoor7,
  446. CHAR* sdoor8
  447. )
  448. {
  449. CString sShow,sTemp;
  450. sTemp.Format( "%s",scontrolname );
  451. if( sTemp=="" )
  452. {
  453. sShow.Format("%s%s",g_strControlName,g_strNotNull );
  454. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  455. return -1;
  456. }
  457. sTemp.Format( "%s",ssn );
  458. if( sTemp=="" )
  459. {
  460. sShow.Format("%s%s",g_strControlSN,g_strNotNull );
  461. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  462. return -1;
  463. }
  464. if( IsExistItem( "t_door_control","scontrolname",scontrolname ) )
  465. {
  466. sShow.Format("%s%s",g_strControlName,g_strExist );
  467. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  468. return -1;
  469. }
  470. if( IsExistItem( "t_door_control","ssn",ssn ) )
  471. {
  472. sShow.Format("%s%s",g_strControlSN,g_strExist );
  473. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  474. return -1;
  475. }
  476. INT iRetCode = -1;
  477. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  478. int iMaxID = 0;
  479. CHAR chMaxID[MAX_ID] = {0};
  480. GetMaxID("t_door_control", "id", chMaxID);
  481. if( 0 == atoi(chMaxID) )
  482. {
  483. iMaxID = 1;
  484. }
  485. else
  486. {
  487. iMaxID = atoi(chMaxID) + 1;
  488. }
  489. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  490. {
  491. sprintf(strSQLText, "insert into t_door_control( id,nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8 ) values(" \
  492. "%d, %d,\'%s\',\'%s\',%d,%d,\'%s\',\'%s\',%d,%d,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",
  493. iMaxID, nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8 );
  494. iRetCode = g_pADODatabase->Execute(strSQLText);
  495. }
  496. return iMaxID;
  497. }
  498. //更新控制器记录
  499. INT UpdateControlInfo(
  500. int nID,
  501. int nbrandtype,
  502. CHAR* scontrolname,
  503. CHAR* ssn,
  504. int nwordmode,
  505. int ncomport,
  506. CHAR* sip,
  507. CHAR* sport,
  508. int nforbid,
  509. int ndoorconut,
  510. CHAR* sdoor1,
  511. CHAR* sdoor2,
  512. CHAR* sdoor3,
  513. CHAR* sdoor4,
  514. CHAR* sdoor5,
  515. CHAR* sdoor6,
  516. CHAR* sdoor7,
  517. CHAR* sdoor8
  518. )
  519. {
  520. CString sShow,sTemp;
  521. sTemp.Format( "%s",scontrolname );
  522. if( sTemp=="" )
  523. {
  524. sShow.Format("%s%s",g_strControlName,g_strNotNull );
  525. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  526. return -1;
  527. }
  528. sTemp.Format( "%s",ssn );
  529. if( sTemp=="" )
  530. {
  531. sShow.Format("%s%s",g_strControlSN,g_strNotNull );
  532. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  533. return -1;
  534. }
  535. if( IsExistItem( "t_door_control","scontrolname",scontrolname,nID ) )
  536. {
  537. sShow.Format("%s%s",g_strControlName,g_strExist );
  538. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  539. return -1;
  540. }
  541. if( IsExistItem( "t_door_control","ssn",ssn,nID ) )
  542. {
  543. sShow.Format("%s%s",g_strControlSN,g_strExist );
  544. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  545. return -1;
  546. }
  547. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  548. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  549. INT iRetCode = 0;
  550. try
  551. {
  552. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  553. {
  554. sprintf(strSQLText, "update t_door_control set nbrandtype=%d,scontrolname=\'%s\',ssn=\'%s\',nwordmode=%d,ncomport=%d,sip=\'%s\',sport=\'%s\',nforbid=%d,ndoorconut=%d, "\
  555. " sdoor1=\'%s\',sdoor2=\'%s\',sdoor3=\'%s\',sdoor4=\'%s\',sdoor5=\'%s\',sdoor6=\'%s\',sdoor7=\'%s\',sdoor8=\'%s\' where id = %d",
  556. nbrandtype,scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8,nID );
  557. iRetCode = g_pADODatabase->Execute(strSQLText);
  558. }
  559. }
  560. catch (_com_error &e)
  561. {
  562. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  563. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  564. return 0;
  565. }
  566. return iRetCode;
  567. }
  568. //插入卡记录
  569. INT InsertCardInfo(
  570. CHAR* susername,
  571. CHAR* scardnumber,
  572. CHAR* sclass,
  573. CHAR* sjobnumber,
  574. CHAR* sremarks
  575. )
  576. {
  577. CString sShow,sTemp;
  578. sTemp.Format( "%s",susername );
  579. if( sTemp=="" )
  580. {
  581. sShow.Format("%s%s",g_strUserName,g_strNotNull );
  582. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  583. return -1;
  584. }
  585. sTemp.Format( "%s",scardnumber );
  586. if( sTemp=="" )
  587. {
  588. sShow.Format("%s%s",g_strCardNumber,g_strNotNull );
  589. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  590. return -1;
  591. }
  592. if( IsExistItem( "t_door_card","susername",susername ) )
  593. {
  594. sShow.Format("%s%s",g_strUserName,g_strExist );
  595. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  596. return -1;
  597. }
  598. if( IsExistItem( "t_door_card","scardnumber",scardnumber ) )
  599. {
  600. sShow.Format("%s%s",g_strCardNumber,g_strExist );
  601. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  602. return -1;
  603. }
  604. INT iRetCode = 0;
  605. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  606. int iMaxID = 0;
  607. CHAR chMaxID[MAX_ID] = {0};
  608. GetMaxID("t_door_card", "id", chMaxID);
  609. if( 0 == atoi(chMaxID) )
  610. {
  611. iMaxID = 1;
  612. }
  613. else
  614. {
  615. iMaxID = atoi(chMaxID) + 1;
  616. }
  617. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  618. {
  619. sprintf(strSQLText, "insert into t_door_card( id,susername,scardnumber,sclass,sjobnumber,sremarks ) values(" \
  620. "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",
  621. iMaxID,susername,scardnumber,sclass,sjobnumber,sremarks );
  622. g_pADODatabase->Execute(strSQLText);
  623. }
  624. return iMaxID;
  625. }
  626. //插入卡记录_导入
  627. INT InsertCardInfo_INPUT(
  628. CHAR* susername,
  629. CHAR* scardnumber,
  630. CHAR* sclass,
  631. CHAR* sjobnumber,
  632. CHAR* sremarks
  633. )
  634. {
  635. CString sShow,sTemp;
  636. sTemp.Format( "%s",susername );
  637. if( sTemp=="" )
  638. {
  639. sShow.Format("%s%s",g_strUserName,g_strNotNull );
  640. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  641. return -1;
  642. }
  643. sTemp.Format( "%s",scardnumber );
  644. if( sTemp=="" )
  645. {
  646. sShow.Format("%s%s",g_strCardNumber,g_strNotNull );
  647. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  648. return -1;
  649. }
  650. if( IsExistItem( "t_door_card","susername",susername ) )
  651. {
  652. sShow.Format("%s%s",g_strUserName,g_strExist );
  653. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  654. return -1;
  655. }
  656. if( IsExistItem( "t_door_card","scardnumber",scardnumber ) )
  657. {
  658. sShow.Format("%s%s",g_strCardNumber,g_strExist );
  659. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  660. return -1;
  661. }
  662. INT iRetCode = -1;
  663. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  664. int iMaxID = 0;
  665. CHAR chMaxID[MAX_ID] = {0};
  666. GetMaxID("t_door_card", "id", chMaxID);
  667. if( 0 == atoi(chMaxID) )
  668. {
  669. iMaxID = 1;
  670. }
  671. else
  672. {
  673. iMaxID = atoi(chMaxID) + 1;
  674. }
  675. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  676. {
  677. sprintf(strSQLText, "insert into t_door_card( id,susername,scardnumber,sclass,sjobnumber,sremarks ) values(" \
  678. "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",
  679. iMaxID,susername,scardnumber,sclass,sjobnumber,sremarks );
  680. iRetCode = g_pADODatabase->Execute(strSQLText);
  681. }
  682. return iMaxID;
  683. }
  684. //更新卡记录
  685. INT UpdateCardInfo(
  686. int nID,
  687. CHAR* susername,
  688. CHAR* scardnumber,
  689. CHAR* sclass,
  690. CHAR* sjobnumber,
  691. CHAR* sremarks
  692. )
  693. {
  694. CString sShow,sTemp;
  695. sTemp.Format( "%s",susername );
  696. if( sTemp=="" )
  697. {
  698. sShow.Format("%s%s",g_strUserName,g_strNotNull );
  699. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  700. return -1;
  701. }
  702. sTemp.Format( "%s",scardnumber );
  703. if( sTemp=="" )
  704. {
  705. sShow.Format("%s%s",g_strCardNumber,g_strNotNull );
  706. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  707. return -1;
  708. }
  709. if( IsExistItem( "t_door_card","susername",susername,nID ) )
  710. {
  711. sShow.Format("%s%s",g_strUserName,g_strExist );
  712. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  713. return -1;
  714. }
  715. if( IsExistItem( "t_door_card","scardnumber",scardnumber,nID ) )
  716. {
  717. sShow.Format("%s%s",g_strCardNumber,g_strExist );
  718. MessageBox( g_pDlgMain->GetSafeHwnd(),sShow, g_strTip, MB_ICONINFORMATION);
  719. return -1;
  720. }
  721. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  722. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  723. INT iRetCode = 0;
  724. try
  725. {
  726. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  727. {
  728. sprintf(strSQLText, "update t_door_card set susername=\'%s\',scardnumber=\'%s\',sclass=\'%s\',sjobnumber=\'%s\',sremarks=\'%s\' where id = %d",
  729. susername,scardnumber,sclass,sjobnumber,sremarks,nID );
  730. iRetCode = g_pADODatabase->Execute(strSQLText);
  731. }
  732. }
  733. catch (_com_error &e)
  734. {
  735. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  736. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  737. return 0;
  738. }
  739. return iRetCode;
  740. }
  741. //插入进出记录
  742. INT InsertRecordInfo(
  743. CHAR* scardnumber,
  744. CHAR* speople,
  745. CHAR* sinout,
  746. CHAR* sinfo,
  747. CHAR* stime
  748. )
  749. {
  750. INT iRetCode = 0;
  751. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  752. int iMaxID = 0;
  753. CHAR chMaxID[MAX_ID] = {0};
  754. GetMaxID("t_door_record", "id", chMaxID);
  755. if( 0 == atoi(chMaxID) )
  756. {
  757. iMaxID = 1;
  758. }
  759. else
  760. {
  761. iMaxID = atoi(chMaxID) + 1;
  762. }
  763. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  764. {
  765. sprintf(strSQLText, "insert into t_door_record( id,scardnumber,speople,sinout,sinfo,stime ) values(" \
  766. "%d, \'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",
  767. iMaxID,scardnumber,speople,sinout,sinfo,stime );
  768. iRetCode = g_pADODatabase->Execute(strSQLText);
  769. }
  770. return iRetCode;
  771. }
  772. //更新Bit位表
  773. INT UpdateVarItemInfo(int nID, CHAR *pUid, int nStartBit, int nEndBit)
  774. {
  775. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  776. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  777. INT iRetCode = 0;
  778. try
  779. {
  780. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  781. {
  782. sprintf(strSQLText, "update t_dev_variant_item set startbit = %d, endbit = %d where id = %d and uid = \'%s\'",
  783. nStartBit, nEndBit, nID, pUid);
  784. iRetCode = g_pADODatabase->Execute(strSQLText);
  785. }
  786. }
  787. catch (_com_error &e)
  788. {
  789. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  790. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  791. return 0;
  792. }
  793. return iRetCode;
  794. }
  795. //插入变量状态描述
  796. INT InsertVarStatusInfo(int nID, CHAR *pUid, int nVarID, int nStatusID, CHAR *pStatusDesc)
  797. {
  798. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  799. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  800. INT iRetCode = 0;
  801. try
  802. {
  803. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  804. {
  805. sprintf(strSQLText, "insert into t_var_status(id, devuid, varid, statusid, statusdesc, normalstatus) values(" \
  806. "%d, \'%s\', %d, %d, \'%s\', %d)",
  807. nID, pUid, nVarID, nStatusID, pStatusDesc, 0);
  808. iRetCode = g_pADODatabase->Execute(strSQLText);
  809. }
  810. }
  811. catch (_com_error &e)
  812. {
  813. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  814. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  815. return 0;
  816. }
  817. return iRetCode;
  818. }
  819. //删除变量状态描述
  820. INT DeleteVarStatusInfo(CHAR *pUid, int nVarID)
  821. {
  822. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  823. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  824. INT iRetCode = 0;
  825. try
  826. {
  827. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  828. {
  829. sprintf(strSQLText, "delete from t_var_status where devuid = \'%s\' and varid = %d ",
  830. pUid, nVarID);
  831. iRetCode = g_pADODatabase->Execute(strSQLText);
  832. }
  833. }
  834. catch (_com_error &e)
  835. {
  836. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  837. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  838. return 0;
  839. }
  840. return iRetCode;
  841. }
  842. //清空表
  843. INT CleanTable( CHAR *pTableName )
  844. {
  845. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  846. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  847. INT iRetCode = 0;
  848. try
  849. {
  850. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  851. {
  852. sprintf(strSQLText, "delete from %s where id >0 ", pTableName);
  853. iRetCode = g_pADODatabase->Execute(strSQLText);
  854. }
  855. }
  856. catch (_com_error &e)
  857. {
  858. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  859. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  860. return 0;
  861. }
  862. return iRetCode;
  863. }
  864. //删除表中的项
  865. INT DelItemFromTable( CHAR *pTableName,CHAR* iItem,int nData )
  866. {
  867. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  868. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  869. INT iRetCode = 0;
  870. try
  871. {
  872. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  873. {
  874. sprintf(strSQLText, "delete from %s where %s = %d ", pTableName,iItem,nData );
  875. iRetCode = g_pADODatabase->Execute(strSQLText);
  876. }
  877. }
  878. catch (_com_error &e)
  879. {
  880. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  881. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  882. return 0;
  883. }
  884. return iRetCode;
  885. }
  886. bool IsExistItem( CHAR *pTableName,CHAR* iItem,CHAR* sData )
  887. {
  888. bool bRet = false;
  889. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  890. list<string> list1;
  891. list<string>::iterator it;
  892. sprintf(strSQLText, "select id from %s where %s=\'%s\'", pTableName,iItem,sData );
  893. int nRet = GetFieldValueList1(strSQLText, list1);
  894. if( 0 == list1.size() )
  895. {
  896. return bRet;
  897. }
  898. if( nRet != -1 )
  899. {
  900. bRet = true;
  901. }
  902. for( it = list1.begin(); it != list1.end(); )
  903. {
  904. list1.erase(it++);
  905. }
  906. return bRet;
  907. }
  908. bool IsExistItem( CHAR *pTableName,CHAR* iItem,CHAR* sData,int iID )
  909. {
  910. bool bRet = false;
  911. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  912. list<string> list1;
  913. list<string>::iterator it;
  914. sprintf(strSQLText, "select id from %s where %s=\'%s\'", pTableName,iItem,sData );
  915. int nRet = GetFieldValueList1(strSQLText, list1);
  916. if( 0 == list1.size() )
  917. {
  918. return bRet;
  919. }
  920. if( nRet != -1 )
  921. {
  922. it=list1.begin();
  923. CString s = (*it).c_str();
  924. if( atoi( (*it).c_str() ) != iID )
  925. {
  926. bRet = true;
  927. }
  928. }
  929. for( it = list1.begin(); it != list1.end(); )
  930. {
  931. list1.erase(it++);
  932. }
  933. return bRet;
  934. }
  935. //获取变量报警状态最大的ID
  936. INT GetVarStatusMaxID( CHAR *pMaxID )
  937. {
  938. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  939. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  940. CString strID;
  941. CADORecordset* pRSet = NULL;
  942. INT iRetCode = 0;
  943. int nCount = 0;
  944. try
  945. {
  946. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  947. {
  948. pRSet = new CADORecordset(g_pADODatabase);
  949. if (NULL == pRSet)
  950. {
  951. return -1;
  952. }
  953. sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  954. iRetCode = pRSet->Open(strSQLText, CADORecordset::openQuery);
  955. if (iRetCode == 0)
  956. {
  957. delete pRSet;
  958. pRSet = NULL;
  959. return -1;
  960. }
  961. nCount = pRSet->GetRecordCount();
  962. if (nCount == 0)
  963. {
  964. if( pRSet )
  965. {
  966. delete pRSet;
  967. pRSet = NULL;
  968. }
  969. return 0;
  970. }
  971. // 获取最大的设备ID
  972. if (!pRSet->IsFieldNull("maxid"))
  973. {
  974. pRSet->GetFieldValue("maxid", strID);
  975. strcpy(pMaxID, (char *)(LPCTSTR)strID);
  976. }
  977. if( pRSet )
  978. {
  979. delete pRSet;
  980. pRSet = NULL;
  981. }
  982. return nCount;
  983. }
  984. }
  985. catch (_com_error &e)
  986. {
  987. if( pRSet )
  988. {
  989. delete pRSet;
  990. pRSet = NULL;
  991. }
  992. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  993. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  994. return -1;
  995. }
  996. if( pRSet )
  997. {
  998. delete pRSet;
  999. pRSet = NULL;
  1000. }
  1001. return 0;
  1002. }
  1003. int GetFieldValueList1(char *pSql, list<string>& list1)
  1004. {
  1005. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1006. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1007. CString strID;
  1008. CADORecordset* pRSet = NULL;
  1009. INT iRetCode = 0;
  1010. int nCount = 0;
  1011. _variant_t vtFieldValue;
  1012. try
  1013. {
  1014. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1015. {
  1016. pRSet = new CADORecordset(g_pADODatabase);
  1017. if (NULL == pRSet)
  1018. {
  1019. return -1;
  1020. }
  1021. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1022. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1023. if (iRetCode == 0)
  1024. {
  1025. delete pRSet;
  1026. pRSet = NULL;
  1027. return -1;
  1028. }
  1029. nCount = pRSet->GetRecordCount();
  1030. if (nCount == 0)
  1031. {
  1032. if( pRSet )
  1033. {
  1034. delete pRSet;
  1035. pRSet = NULL;
  1036. }
  1037. return 0;
  1038. }
  1039. for( int i = 0; i < nCount; i++ )
  1040. {
  1041. if( pRSet->GetFieldCount() >= 1 )
  1042. {
  1043. if( !pRSet->IsFieldNull(0) )
  1044. {
  1045. pRSet->GetFieldValue(0, vtFieldValue);
  1046. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1047. list1.insert(list1.end(), strFieldValue);
  1048. }
  1049. else
  1050. {
  1051. list1.insert(list1.end(), "");
  1052. }// end if( !pRSet->IsFieldNull(0) )
  1053. }// end if( pRSet->GetFieldCount() >= 2 )
  1054. pRSet->MoveNext();
  1055. }// end for( int i = 0; i < nRecordCount; i++ )
  1056. if( pRSet )
  1057. {
  1058. delete pRSet;
  1059. pRSet = NULL;
  1060. }
  1061. return nCount;
  1062. }
  1063. }
  1064. catch (_com_error &e)
  1065. {
  1066. if( pRSet )
  1067. {
  1068. delete pRSet;
  1069. pRSet = NULL;
  1070. }
  1071. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1072. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1073. return -1;
  1074. }
  1075. if( pRSet )
  1076. {
  1077. delete pRSet;
  1078. pRSet = NULL;
  1079. }
  1080. return 0;
  1081. }
  1082. int GetFieldValueList2(char *pSql, list<string>& list1, list<string>& list2)
  1083. {
  1084. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1085. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1086. CString strID;
  1087. CADORecordset* pRSet = NULL;
  1088. INT iRetCode = 0;
  1089. int nCount = 0;
  1090. _variant_t vtFieldValue;
  1091. try
  1092. {
  1093. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1094. {
  1095. pRSet = new CADORecordset(g_pADODatabase);
  1096. if (NULL == pRSet)
  1097. {
  1098. return -1;
  1099. }
  1100. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1101. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1102. if (iRetCode == 0)
  1103. {
  1104. delete pRSet;
  1105. pRSet = NULL;
  1106. return -1;
  1107. }
  1108. nCount = pRSet->GetRecordCount();
  1109. if (nCount == 0)
  1110. {
  1111. if( pRSet )
  1112. {
  1113. delete pRSet;
  1114. pRSet = NULL;
  1115. }
  1116. return 0;
  1117. }
  1118. for( int i = 0; i < nCount; i++ )
  1119. {
  1120. if( pRSet->GetFieldCount() >= 2 )
  1121. {
  1122. if( !pRSet->IsFieldNull(0) )
  1123. {
  1124. pRSet->GetFieldValue(0, vtFieldValue);
  1125. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1126. list1.insert(list1.end(), strFieldValue);
  1127. }
  1128. else
  1129. {
  1130. list1.insert(list1.end(), "");
  1131. }// end if( !pRSet->IsFieldNull(0) )
  1132. if( !pRSet->IsFieldNull(1) )
  1133. {
  1134. pRSet->GetFieldValue(1, vtFieldValue);
  1135. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1136. list2.insert(list2.end(), strFieldValue);
  1137. }
  1138. else
  1139. {
  1140. list2.insert(list2.end(), "");
  1141. }// end if( !pRSet->IsFieldNull(1) )
  1142. }// end if( pRSet->GetFieldCount() >= 2 )
  1143. pRSet->MoveNext();
  1144. }// end for( int i = 0; i < nRecordCount; i++ )
  1145. if( pRSet )
  1146. {
  1147. delete pRSet;
  1148. pRSet = NULL;
  1149. }
  1150. return nCount;
  1151. }
  1152. }
  1153. catch (_com_error &e)
  1154. {
  1155. if( pRSet )
  1156. {
  1157. delete pRSet;
  1158. pRSet = NULL;
  1159. }
  1160. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1161. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1162. return -1;
  1163. }
  1164. if( pRSet )
  1165. {
  1166. delete pRSet;
  1167. pRSet = NULL;
  1168. }
  1169. return 0;
  1170. }
  1171. int GetFieldValueList3(char *pSql, list<string>& list1, list<string>& list2, list<string>& list3)
  1172. {
  1173. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1174. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1175. CString strID;
  1176. CADORecordset* pRSet = NULL;
  1177. INT iRetCode = 0;
  1178. int nCount = 0;
  1179. _variant_t vtFieldValue;
  1180. try
  1181. {
  1182. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1183. {
  1184. pRSet = new CADORecordset(g_pADODatabase);
  1185. if (NULL == pRSet)
  1186. {
  1187. return -1;
  1188. }
  1189. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1190. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1191. if (iRetCode == 0)
  1192. {
  1193. delete pRSet;
  1194. pRSet = NULL;
  1195. return -1;
  1196. }
  1197. nCount = pRSet->GetRecordCount();
  1198. if (nCount == 0)
  1199. {
  1200. if( pRSet )
  1201. {
  1202. delete pRSet;
  1203. pRSet = NULL;
  1204. }
  1205. return 0;
  1206. }
  1207. for( int i = 0; i < nCount; i++ )
  1208. {
  1209. if( pRSet->GetFieldCount() >= 2 )
  1210. {
  1211. if( !pRSet->IsFieldNull(0) )
  1212. {
  1213. pRSet->GetFieldValue(0, vtFieldValue);
  1214. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1215. list1.insert(list1.end(), strFieldValue);
  1216. }
  1217. else
  1218. {
  1219. list1.insert(list1.end(), "");
  1220. }// end if( !pRSet->IsFieldNull(0) )
  1221. if( !pRSet->IsFieldNull(1) )
  1222. {
  1223. pRSet->GetFieldValue(1, vtFieldValue);
  1224. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1225. list2.insert(list2.end(), strFieldValue);
  1226. }
  1227. else
  1228. {
  1229. list2.insert(list2.end(), "");
  1230. }// end if( !pRSet->IsFieldNull(1) )
  1231. if( !pRSet->IsFieldNull(2) )
  1232. {
  1233. pRSet->GetFieldValue(2, vtFieldValue);
  1234. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1235. list3.insert(list3.end(), strFieldValue);
  1236. }
  1237. else
  1238. {
  1239. list3.insert(list3.end(), "");
  1240. }// end if( !pRSet->IsFieldNull(1) )
  1241. }// end if( pRSet->GetFieldCount() >= 2 )
  1242. pRSet->MoveNext();
  1243. }// end for( int i = 0; i < nRecordCount; i++ )
  1244. if( pRSet )
  1245. {
  1246. delete pRSet;
  1247. pRSet = NULL;
  1248. }
  1249. return nCount;
  1250. }
  1251. }
  1252. catch (_com_error &e)
  1253. {
  1254. if( pRSet )
  1255. {
  1256. delete pRSet;
  1257. pRSet = NULL;
  1258. }
  1259. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1260. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1261. return -1;
  1262. }
  1263. if( pRSet )
  1264. {
  1265. delete pRSet;
  1266. pRSet = NULL;
  1267. }
  1268. return 0;
  1269. }
  1270. int GetFieldValueList6(char *pSql,list<string>& list1,list<string>& list2,list<string>& list3,list<string>& list4,list<string>& list5,list<string>& list6)
  1271. {
  1272. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1273. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1274. CString strID;
  1275. CADORecordset* pRSet = NULL;
  1276. INT iRetCode = 0;
  1277. int nCount = 0;
  1278. _variant_t vtFieldValue;
  1279. try
  1280. {
  1281. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1282. {
  1283. pRSet = new CADORecordset(g_pADODatabase);
  1284. if (NULL == pRSet)
  1285. {
  1286. return -1;
  1287. }
  1288. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1289. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1290. if (iRetCode == 0)
  1291. {
  1292. delete pRSet;
  1293. pRSet = NULL;
  1294. return -1;
  1295. }
  1296. nCount = pRSet->GetRecordCount();
  1297. if (nCount == 0)
  1298. {
  1299. if( pRSet )
  1300. {
  1301. delete pRSet;
  1302. pRSet = NULL;
  1303. }
  1304. return 0;
  1305. }
  1306. for( int i = 0; i < nCount; i++ )
  1307. {
  1308. if( pRSet->GetFieldCount() >= 5 )
  1309. {
  1310. if( !pRSet->IsFieldNull(0) )
  1311. {
  1312. pRSet->GetFieldValue(0, vtFieldValue);
  1313. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1314. list1.insert(list1.end(), strFieldValue);
  1315. }
  1316. else
  1317. {
  1318. list1.insert(list1.end(), "");
  1319. }
  1320. if( !pRSet->IsFieldNull(1) )
  1321. {
  1322. pRSet->GetFieldValue(1, vtFieldValue);
  1323. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1324. list2.insert(list2.end(), strFieldValue);
  1325. }
  1326. else
  1327. {
  1328. list2.insert(list2.end(), "");
  1329. }
  1330. if( !pRSet->IsFieldNull(2) )
  1331. {
  1332. pRSet->GetFieldValue(2, vtFieldValue);
  1333. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1334. list3.insert(list3.end(), strFieldValue);
  1335. }
  1336. else
  1337. {
  1338. list3.insert(list3.end(), "");
  1339. }
  1340. if( !pRSet->IsFieldNull(3) )
  1341. {
  1342. pRSet->GetFieldValue(3, vtFieldValue);
  1343. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1344. list4.insert(list4.end(), strFieldValue);
  1345. }
  1346. else
  1347. {
  1348. list4.insert(list4.end(), "");
  1349. }
  1350. if( !pRSet->IsFieldNull(4) )
  1351. {
  1352. pRSet->GetFieldValue(4, vtFieldValue);
  1353. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1354. list5.insert(list5.end(), strFieldValue);
  1355. }
  1356. else
  1357. {
  1358. list5.insert(list5.end(), "");
  1359. }
  1360. if( !pRSet->IsFieldNull(5) )
  1361. {
  1362. pRSet->GetFieldValue(5, vtFieldValue);
  1363. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1364. list6.insert(list6.end(), strFieldValue);
  1365. }
  1366. else
  1367. {
  1368. list6.insert(list6.end(), "");
  1369. }
  1370. }
  1371. pRSet->MoveNext();
  1372. }// end for( int i = 0; i < nRecordCount; i++ )
  1373. if( pRSet )
  1374. {
  1375. delete pRSet;
  1376. pRSet = NULL;
  1377. }
  1378. return nCount;
  1379. }
  1380. }
  1381. catch (_com_error &e)
  1382. {
  1383. if( pRSet )
  1384. {
  1385. delete pRSet;
  1386. pRSet = NULL;
  1387. }
  1388. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1389. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1390. return -1;
  1391. }
  1392. if( pRSet )
  1393. {
  1394. delete pRSet;
  1395. pRSet = NULL;
  1396. }
  1397. return 0;
  1398. }
  1399. int GetFieldValueList9(char *pSql,list<string>& list1,list<string>& list2,list<string>& list3,list<string>& list4,list<string>& list5,list<string>& list6,list<string>& list7,list<string>& list8,list<string>& list9)
  1400. {
  1401. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1402. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1403. CString strID;
  1404. CADORecordset* pRSet = NULL;
  1405. INT iRetCode = 0;
  1406. int nCount = 0;
  1407. _variant_t vtFieldValue;
  1408. try
  1409. {
  1410. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1411. {
  1412. pRSet = new CADORecordset(g_pADODatabase);
  1413. if (NULL == pRSet)
  1414. {
  1415. return -1;
  1416. }
  1417. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1418. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1419. if (iRetCode == 0)
  1420. {
  1421. delete pRSet;
  1422. pRSet = NULL;
  1423. return -1;
  1424. }
  1425. nCount = pRSet->GetRecordCount();
  1426. if (nCount == 0)
  1427. {
  1428. if( pRSet )
  1429. {
  1430. delete pRSet;
  1431. pRSet = NULL;
  1432. }
  1433. return 0;
  1434. }
  1435. for( int i = 0; i < nCount; i++ )
  1436. {
  1437. if( pRSet->GetFieldCount() >= 5 )
  1438. {
  1439. if( !pRSet->IsFieldNull(0) )
  1440. {
  1441. pRSet->GetFieldValue(0, vtFieldValue);
  1442. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1443. list1.insert(list1.end(), strFieldValue);
  1444. }
  1445. else
  1446. {
  1447. list1.insert(list1.end(), "");
  1448. }
  1449. if( !pRSet->IsFieldNull(1) )
  1450. {
  1451. pRSet->GetFieldValue(1, vtFieldValue);
  1452. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1453. list2.insert(list2.end(), strFieldValue);
  1454. }
  1455. else
  1456. {
  1457. list2.insert(list2.end(), "");
  1458. }
  1459. if( !pRSet->IsFieldNull(2) )
  1460. {
  1461. pRSet->GetFieldValue(2, vtFieldValue);
  1462. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1463. list3.insert(list3.end(), strFieldValue);
  1464. }
  1465. else
  1466. {
  1467. list3.insert(list3.end(), "");
  1468. }
  1469. if( !pRSet->IsFieldNull(3) )
  1470. {
  1471. pRSet->GetFieldValue(3, vtFieldValue);
  1472. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1473. list4.insert(list4.end(), strFieldValue);
  1474. }
  1475. else
  1476. {
  1477. list4.insert(list4.end(), "");
  1478. }
  1479. if( !pRSet->IsFieldNull(4) )
  1480. {
  1481. pRSet->GetFieldValue(4, vtFieldValue);
  1482. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1483. list5.insert(list5.end(), strFieldValue);
  1484. }
  1485. else
  1486. {
  1487. list5.insert(list5.end(), "");
  1488. }
  1489. if( !pRSet->IsFieldNull(5) )
  1490. {
  1491. pRSet->GetFieldValue(5, vtFieldValue);
  1492. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1493. list6.insert(list6.end(), strFieldValue);
  1494. }
  1495. else
  1496. {
  1497. list6.insert(list6.end(), "");
  1498. }
  1499. if( !pRSet->IsFieldNull(6) )
  1500. {
  1501. pRSet->GetFieldValue(6, vtFieldValue);
  1502. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1503. list7.insert(list7.end(), strFieldValue);
  1504. }
  1505. else
  1506. {
  1507. list7.insert(list7.end(), "");
  1508. }
  1509. if( !pRSet->IsFieldNull(7) )
  1510. {
  1511. pRSet->GetFieldValue(7, vtFieldValue);
  1512. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1513. list8.insert(list8.end(), strFieldValue);
  1514. }
  1515. else
  1516. {
  1517. list8.insert(list8.end(), "");
  1518. }
  1519. if( !pRSet->IsFieldNull(8) )
  1520. {
  1521. pRSet->GetFieldValue(8, vtFieldValue);
  1522. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1523. list9.insert(list9.end(), strFieldValue);
  1524. }
  1525. else
  1526. {
  1527. list9.insert(list9.end(), "");
  1528. }
  1529. }
  1530. pRSet->MoveNext();
  1531. }// end for( int i = 0; i < nRecordCount; i++ )
  1532. if( pRSet )
  1533. {
  1534. delete pRSet;
  1535. pRSet = NULL;
  1536. }
  1537. return nCount;
  1538. }
  1539. }
  1540. catch (_com_error &e)
  1541. {
  1542. if( pRSet )
  1543. {
  1544. delete pRSet;
  1545. pRSet = NULL;
  1546. }
  1547. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1548. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1549. return -1;
  1550. }
  1551. if( pRSet )
  1552. {
  1553. delete pRSet;
  1554. pRSet = NULL;
  1555. }
  1556. return 0;
  1557. }
  1558. int GetFieldValueList13(char *pSql,list<string>& list1,list<string>& list2,list<string>& list3,list<string>& list4,list<string>& list5,list<string>& list6,
  1559. list<string>& list7,list<string>& list8,list<string>& list9,list<string>& list10,list<string>& list11,list<string>& list12,list<string>& list13)
  1560. {
  1561. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1562. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1563. CString strID;
  1564. CADORecordset* pRSet = NULL;
  1565. INT iRetCode = 0;
  1566. int nCount = 0;
  1567. _variant_t vtFieldValue;
  1568. try
  1569. {
  1570. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1571. {
  1572. pRSet = new CADORecordset(g_pADODatabase);
  1573. if (NULL == pRSet)
  1574. {
  1575. return -1;
  1576. }
  1577. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1578. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1579. if (iRetCode == 0)
  1580. {
  1581. delete pRSet;
  1582. pRSet = NULL;
  1583. return -1;
  1584. }
  1585. nCount = pRSet->GetRecordCount();
  1586. if (nCount == 0)
  1587. {
  1588. if( pRSet )
  1589. {
  1590. delete pRSet;
  1591. pRSet = NULL;
  1592. }
  1593. return 0;
  1594. }
  1595. for( int i = 0; i < nCount; i++ )
  1596. {
  1597. if( pRSet->GetFieldCount() >= 13 )
  1598. {
  1599. if( !pRSet->IsFieldNull(0) )
  1600. {
  1601. pRSet->GetFieldValue(0, vtFieldValue);
  1602. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1603. list1.insert(list1.end(), strFieldValue);
  1604. }
  1605. else
  1606. {
  1607. list1.insert(list1.end(), "");
  1608. }
  1609. if( !pRSet->IsFieldNull(1) )
  1610. {
  1611. pRSet->GetFieldValue(1, vtFieldValue);
  1612. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1613. list2.insert(list2.end(), strFieldValue);
  1614. }
  1615. else
  1616. {
  1617. list2.insert(list2.end(), "");
  1618. }
  1619. if( !pRSet->IsFieldNull(2) )
  1620. {
  1621. pRSet->GetFieldValue(2, vtFieldValue);
  1622. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1623. list3.insert(list3.end(), strFieldValue);
  1624. }
  1625. else
  1626. {
  1627. list3.insert(list3.end(), "");
  1628. }
  1629. if( !pRSet->IsFieldNull(3) )
  1630. {
  1631. pRSet->GetFieldValue(3, vtFieldValue);
  1632. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1633. list4.insert(list4.end(), strFieldValue);
  1634. }
  1635. else
  1636. {
  1637. list4.insert(list4.end(), "");
  1638. }
  1639. if( !pRSet->IsFieldNull(4) )
  1640. {
  1641. pRSet->GetFieldValue(4, vtFieldValue);
  1642. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1643. list5.insert(list5.end(), strFieldValue);
  1644. }
  1645. else
  1646. {
  1647. list5.insert(list5.end(), "");
  1648. }
  1649. if( !pRSet->IsFieldNull(5) )
  1650. {
  1651. pRSet->GetFieldValue(5, vtFieldValue);
  1652. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1653. list6.insert(list6.end(), strFieldValue);
  1654. }
  1655. else
  1656. {
  1657. list6.insert(list6.end(), "");
  1658. }
  1659. if( !pRSet->IsFieldNull(6) )
  1660. {
  1661. pRSet->GetFieldValue(6, vtFieldValue);
  1662. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1663. list7.insert(list7.end(), strFieldValue);
  1664. }
  1665. else
  1666. {
  1667. list7.insert(list7.end(), "");
  1668. }
  1669. if( !pRSet->IsFieldNull(7) )
  1670. {
  1671. pRSet->GetFieldValue(7, vtFieldValue);
  1672. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1673. list8.insert(list8.end(), strFieldValue);
  1674. }
  1675. else
  1676. {
  1677. list8.insert(list8.end(), "");
  1678. }
  1679. if( !pRSet->IsFieldNull(8) )
  1680. {
  1681. pRSet->GetFieldValue(8, vtFieldValue);
  1682. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1683. list9.insert(list9.end(), strFieldValue);
  1684. }
  1685. else
  1686. {
  1687. list9.insert(list9.end(), "");
  1688. }
  1689. if( !pRSet->IsFieldNull(9) )
  1690. {
  1691. pRSet->GetFieldValue(9, vtFieldValue);
  1692. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1693. list10.insert(list10.end(), strFieldValue);
  1694. }
  1695. else
  1696. {
  1697. list10.insert(list10.end(), "");
  1698. }
  1699. if( !pRSet->IsFieldNull(10) )
  1700. {
  1701. pRSet->GetFieldValue(10, vtFieldValue);
  1702. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1703. list11.insert(list11.end(), strFieldValue);
  1704. }
  1705. else
  1706. {
  1707. list11.insert(list11.end(), "");
  1708. }
  1709. if( !pRSet->IsFieldNull(11) )
  1710. {
  1711. pRSet->GetFieldValue(11, vtFieldValue);
  1712. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1713. list12.insert(list12.end(), strFieldValue);
  1714. }
  1715. else
  1716. {
  1717. list12.insert(list12.end(), "");
  1718. }
  1719. if( !pRSet->IsFieldNull(12) )
  1720. {
  1721. pRSet->GetFieldValue(12, vtFieldValue);
  1722. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1723. list13.insert(list13.end(), strFieldValue);
  1724. }
  1725. else
  1726. {
  1727. list13.insert(list13.end(), "");
  1728. }
  1729. }
  1730. pRSet->MoveNext();
  1731. }// end for( int i = 0; i < nRecordCount; i++ )
  1732. if( pRSet )
  1733. {
  1734. delete pRSet;
  1735. pRSet = NULL;
  1736. }
  1737. return nCount;
  1738. }
  1739. }
  1740. catch (_com_error &e)
  1741. {
  1742. if( pRSet )
  1743. {
  1744. delete pRSet;
  1745. pRSet = NULL;
  1746. }
  1747. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  1748. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  1749. return -1;
  1750. }
  1751. if( pRSet )
  1752. {
  1753. delete pRSet;
  1754. pRSet = NULL;
  1755. }
  1756. return 0;
  1757. }
  1758. int GetFieldValueList30(char *pSql,list<string>& list1,list<string>& list2,list<string>& list3,list<string>& list4,list<string>& list5,list<string>& list6,
  1759. list<string>& list7,list<string>& list8,list<string>& list9,list<string>& list10,list<string>& list11,list<string>& list12,list<string>& list13
  1760. ,list<string>& list14,list<string>& list15,list<string>& list16,list<string>& list17,list<string>& list18,list<string>& list19,list<string>& list20
  1761. ,list<string>& list21,list<string>& list22,list<string>& list23,list<string>& list24,list<string>& list25
  1762. ,list<string>& list26,list<string>& list27,list<string>& list28,list<string>& list29,list<string>& list30)
  1763. {
  1764. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  1765. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  1766. CString strID;
  1767. CADORecordset* pRSet = NULL;
  1768. INT iRetCode = 0;
  1769. int nCount = 0;
  1770. _variant_t vtFieldValue;
  1771. try
  1772. {
  1773. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  1774. {
  1775. pRSet = new CADORecordset(g_pADODatabase);
  1776. if (NULL == pRSet)
  1777. {
  1778. return -1;
  1779. }
  1780. //sprintf(strSQLText, "select max(id) as maxid from t_var_status");
  1781. iRetCode = pRSet->Open(pSql, CADORecordset::openQuery);
  1782. if (iRetCode == 0)
  1783. {
  1784. delete pRSet;
  1785. pRSet = NULL;
  1786. return -1;
  1787. }
  1788. nCount = pRSet->GetRecordCount();
  1789. if (nCount == 0)
  1790. {
  1791. if( pRSet )
  1792. {
  1793. delete pRSet;
  1794. pRSet = NULL;
  1795. }
  1796. return 0;
  1797. }
  1798. for( int i = 0; i < nCount; i++ )
  1799. {
  1800. if( pRSet->GetFieldCount() >= 30 )
  1801. {
  1802. if( !pRSet->IsFieldNull(0) )
  1803. {
  1804. pRSet->GetFieldValue(0, vtFieldValue);
  1805. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1806. list1.insert(list1.end(), strFieldValue);
  1807. }
  1808. else
  1809. {
  1810. list1.insert(list1.end(), "");
  1811. }
  1812. if( !pRSet->IsFieldNull(1) )
  1813. {
  1814. pRSet->GetFieldValue(1, vtFieldValue);
  1815. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1816. list2.insert(list2.end(), strFieldValue);
  1817. }
  1818. else
  1819. {
  1820. list2.insert(list2.end(), "");
  1821. }
  1822. if( !pRSet->IsFieldNull(2) )
  1823. {
  1824. pRSet->GetFieldValue(2, vtFieldValue);
  1825. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1826. list3.insert(list3.end(), strFieldValue);
  1827. }
  1828. else
  1829. {
  1830. list3.insert(list3.end(), "");
  1831. }
  1832. if( !pRSet->IsFieldNull(3) )
  1833. {
  1834. pRSet->GetFieldValue(3, vtFieldValue);
  1835. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1836. list4.insert(list4.end(), strFieldValue);
  1837. }
  1838. else
  1839. {
  1840. list4.insert(list4.end(), "");
  1841. }
  1842. if( !pRSet->IsFieldNull(4) )
  1843. {
  1844. pRSet->GetFieldValue(4, vtFieldValue);
  1845. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1846. list5.insert(list5.end(), strFieldValue);
  1847. }
  1848. else
  1849. {
  1850. list5.insert(list5.end(), "");
  1851. }
  1852. if( !pRSet->IsFieldNull(5) )
  1853. {
  1854. pRSet->GetFieldValue(5, vtFieldValue);
  1855. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1856. list6.insert(list6.end(), strFieldValue);
  1857. }
  1858. else
  1859. {
  1860. list6.insert(list6.end(), "");
  1861. }
  1862. if( !pRSet->IsFieldNull(6) )
  1863. {
  1864. pRSet->GetFieldValue(6, vtFieldValue);
  1865. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1866. list7.insert(list7.end(), strFieldValue);
  1867. }
  1868. else
  1869. {
  1870. list7.insert(list7.end(), "");
  1871. }
  1872. if( !pRSet->IsFieldNull(7) )
  1873. {
  1874. pRSet->GetFieldValue(7, vtFieldValue);
  1875. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1876. list8.insert(list8.end(), strFieldValue);
  1877. }
  1878. else
  1879. {
  1880. list8.insert(list8.end(), "");
  1881. }
  1882. if( !pRSet->IsFieldNull(8) )
  1883. {
  1884. pRSet->GetFieldValue(8, vtFieldValue);
  1885. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1886. list9.insert(list9.end(), strFieldValue);
  1887. }
  1888. else
  1889. {
  1890. list9.insert(list9.end(), "");
  1891. }
  1892. if( !pRSet->IsFieldNull(9) )
  1893. {
  1894. pRSet->GetFieldValue(9, vtFieldValue);
  1895. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1896. list10.insert(list10.end(), strFieldValue);
  1897. }
  1898. else
  1899. {
  1900. list10.insert(list10.end(), "");
  1901. }
  1902. if( !pRSet->IsFieldNull(10) )
  1903. {
  1904. pRSet->GetFieldValue(10, vtFieldValue);
  1905. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1906. list11.insert(list11.end(), strFieldValue);
  1907. }
  1908. else
  1909. {
  1910. list11.insert(list11.end(), "");
  1911. }
  1912. if( !pRSet->IsFieldNull(11) )
  1913. {
  1914. pRSet->GetFieldValue(11, vtFieldValue);
  1915. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1916. list12.insert(list12.end(), strFieldValue);
  1917. }
  1918. else
  1919. {
  1920. list12.insert(list12.end(), "");
  1921. }
  1922. if( !pRSet->IsFieldNull(12) )
  1923. {
  1924. pRSet->GetFieldValue(12, vtFieldValue);
  1925. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1926. list13.insert(list13.end(), strFieldValue);
  1927. }
  1928. else
  1929. {
  1930. list13.insert(list13.end(), "");
  1931. }
  1932. if( !pRSet->IsFieldNull(13) )
  1933. {
  1934. pRSet->GetFieldValue(13, vtFieldValue);
  1935. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1936. list14.insert(list14.end(), strFieldValue);
  1937. }
  1938. else
  1939. {
  1940. list14.insert(list14.end(), "");
  1941. }
  1942. if( !pRSet->IsFieldNull(14) )
  1943. {
  1944. pRSet->GetFieldValue(14, vtFieldValue);
  1945. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1946. list15.insert(list15.end(), strFieldValue);
  1947. }
  1948. else
  1949. {
  1950. list15.insert(list15.end(), "");
  1951. }
  1952. if( !pRSet->IsFieldNull(15) )
  1953. {
  1954. pRSet->GetFieldValue(15, vtFieldValue);
  1955. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1956. list16.insert(list16.end(), strFieldValue);
  1957. }
  1958. else
  1959. {
  1960. list16.insert(list16.end(), "");
  1961. }
  1962. if( !pRSet->IsFieldNull(16) )
  1963. {
  1964. pRSet->GetFieldValue(16, vtFieldValue);
  1965. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1966. list17.insert(list17.end(), strFieldValue);
  1967. }
  1968. else
  1969. {
  1970. list17.insert(list17.end(), "");
  1971. }
  1972. if( !pRSet->IsFieldNull(17) )
  1973. {
  1974. pRSet->GetFieldValue(17, vtFieldValue);
  1975. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1976. list18.insert(list18.end(), strFieldValue);
  1977. }
  1978. else
  1979. {
  1980. list18.insert(list18.end(), "");
  1981. }
  1982. if( !pRSet->IsFieldNull(18) )
  1983. {
  1984. pRSet->GetFieldValue(18, vtFieldValue);
  1985. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1986. list19.insert(list19.end(), strFieldValue);
  1987. }
  1988. else
  1989. {
  1990. list19.insert(list19.end(), "");
  1991. }
  1992. if( !pRSet->IsFieldNull(19) )
  1993. {
  1994. pRSet->GetFieldValue(19, vtFieldValue);
  1995. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  1996. list20.insert(list20.end(), strFieldValue);
  1997. }
  1998. else
  1999. {
  2000. list20.insert(list20.end(), "");
  2001. }
  2002. if( !pRSet->IsFieldNull(20) )
  2003. {
  2004. pRSet->GetFieldValue(20, vtFieldValue);
  2005. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2006. list21.insert(list21.end(), strFieldValue);
  2007. }
  2008. else
  2009. {
  2010. list21.insert(list21.end(), "");
  2011. }
  2012. if( !pRSet->IsFieldNull(21) )
  2013. {
  2014. pRSet->GetFieldValue(21, vtFieldValue);
  2015. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2016. list22.insert(list22.end(), strFieldValue);
  2017. }
  2018. else
  2019. {
  2020. list22.insert(list22.end(), "");
  2021. }
  2022. if( !pRSet->IsFieldNull(22) )
  2023. {
  2024. pRSet->GetFieldValue(22, vtFieldValue);
  2025. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2026. list23.insert(list23.end(), strFieldValue);
  2027. }
  2028. else
  2029. {
  2030. list23.insert(list23.end(), "");
  2031. }
  2032. if( !pRSet->IsFieldNull(23) )
  2033. {
  2034. pRSet->GetFieldValue(23, vtFieldValue);
  2035. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2036. list24.insert(list24.end(), strFieldValue);
  2037. }
  2038. else
  2039. {
  2040. list24.insert(list24.end(), "");
  2041. }
  2042. if( !pRSet->IsFieldNull(24) )
  2043. {
  2044. pRSet->GetFieldValue(24, vtFieldValue);
  2045. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2046. list25.insert(list25.end(), strFieldValue);
  2047. }
  2048. else
  2049. {
  2050. list25.insert(list25.end(), "");
  2051. }
  2052. if( !pRSet->IsFieldNull(25) )
  2053. {
  2054. pRSet->GetFieldValue(25, vtFieldValue);
  2055. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2056. list26.insert(list26.end(), strFieldValue);
  2057. }
  2058. else
  2059. {
  2060. list26.insert(list26.end(), "");
  2061. }
  2062. if( !pRSet->IsFieldNull(26) )
  2063. {
  2064. pRSet->GetFieldValue(26, vtFieldValue);
  2065. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2066. list27.insert(list27.end(), strFieldValue);
  2067. }
  2068. else
  2069. {
  2070. list27.insert(list27.end(), "");
  2071. }
  2072. if( !pRSet->IsFieldNull(27) )
  2073. {
  2074. pRSet->GetFieldValue(27, vtFieldValue);
  2075. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2076. list28.insert(list28.end(), strFieldValue);
  2077. }
  2078. else
  2079. {
  2080. list28.insert(list28.end(), "");
  2081. }
  2082. if( !pRSet->IsFieldNull(28) )
  2083. {
  2084. pRSet->GetFieldValue(28, vtFieldValue);
  2085. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2086. list29.insert(list29.end(), strFieldValue);
  2087. }
  2088. else
  2089. {
  2090. list29.insert(list29.end(), "");
  2091. }
  2092. if( !pRSet->IsFieldNull(29) )
  2093. {
  2094. pRSet->GetFieldValue(29, vtFieldValue);
  2095. string strFieldValue = string((char*)(_bstr_t)vtFieldValue);
  2096. list30.insert(list30.end(), strFieldValue);
  2097. }
  2098. else
  2099. {
  2100. list30.insert(list30.end(), "");
  2101. }
  2102. }
  2103. pRSet->MoveNext();
  2104. }// end for( int i = 0; i < nRecordCount; i++ )
  2105. if( pRSet )
  2106. {
  2107. delete pRSet;
  2108. pRSet = NULL;
  2109. }
  2110. return nCount;
  2111. }
  2112. }
  2113. catch (_com_error &e)
  2114. {
  2115. if( pRSet )
  2116. {
  2117. delete pRSet;
  2118. pRSet = NULL;
  2119. }
  2120. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  2121. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  2122. return -1;
  2123. }
  2124. if( pRSet )
  2125. {
  2126. delete pRSet;
  2127. pRSet = NULL;
  2128. }
  2129. return 0;
  2130. }
  2131. //更新变量是否要SNMP发送
  2132. INT UpdateVarSnmpStatus( int nID, bool bStatus )
  2133. {
  2134. CHAR strMsg[MAX_MSG_LENGTH + 1] = "";
  2135. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  2136. INT iRetCode = 0;
  2137. try
  2138. {
  2139. if (g_pADODatabase != NULL && g_pADODatabase->IsOpen())
  2140. {
  2141. sprintf(strSQLText, "update t_dev_variant set boolreserved4 = \'%d\' where id = %d ",bStatus, nID);
  2142. iRetCode = g_pADODatabase->Execute(strSQLText);
  2143. }
  2144. }
  2145. catch (_com_error &e)
  2146. {
  2147. //sprintf(strMsg, g_strErrorExecSql, strSQLText, e.ErrorMessage());
  2148. //AddToPrintQueue(MSG_ERROR, MSG_DB_MD, strMsg, strlen(strMsg));
  2149. return 0;
  2150. }
  2151. return iRetCode;
  2152. }