StdAfx.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. // stdafx.cpp : source file that includes just the standard includes
  2. // zc2lyfz.pch will be the pre-compiled header
  3. // stdafx.obj will contain the pre-compiled type information
  4. #include "stdafx.h"
  5. // TODO: reference any additional headers you need in STDAFX.H
  6. // and not in this file
  7. // 全局变量;
  8. CDatabase *g_pDBPtr = NULL;
  9. char g_szDBSource[MAX_PATH]; // 数据库源(服务所在IP或计算机名);
  10. char g_szDBServerPort[MAX_PATH]; // 数据库源端口;
  11. char g_szDBAccount[MAX_PATH]; // 数据库登录用户;
  12. char g_szDBPassWord[MAX_PATH]; // 数据库登录密码;
  13. char g_szDBName[MAX_PATH]; // 数据库名称;
  14. string g_strconnect = "";
  15. string g_sqlVerion = "CREATE TABLE [dbo].[version]("
  16. "[version] [nvarchar](8) NULL,"
  17. "[curdate] [varchar](50) NULL,"
  18. "[check1] [nvarchar](4) NULL,"
  19. "[check2] [nvarchar](4) NULL,"
  20. "[check3] [nvarchar](4) NULL,"
  21. "[check4] [nvarchar](4) NULL,"
  22. "[edit1] [nvarchar](8) NULL,"
  23. "[edit2] [nvarchar](8) NULL,"
  24. "[edit3] [nvarchar](8) NULL,"
  25. "[edit4] [nvarchar](8) NULL,"
  26. "[info1] [nvarchar](50) NULL,"
  27. "[info2] [nvarchar](50) NULL,"
  28. "[info3] [nvarchar](50) NULL,"
  29. "[info4] [nvarchar](50) NULL,"
  30. "[info5] [nvarchar](50) NULL,"
  31. "[bak1] [nvarchar](50) NULL,"
  32. "[bak2] [nvarchar](50) NULL,"
  33. "[bak3] [nvarchar](50) NULL,"
  34. "[bak4] [nvarchar](50) NULL,"
  35. "[bak5] [nvarchar](50) NULL,"
  36. "[bak6] [nvarchar](50) NULL,"
  37. "[baktime] [nvarchar](4) NULL,"
  38. "[bakserver1] [nvarchar](50) NULL,"
  39. "[bakserver2] [nvarchar](50) NULL,"
  40. "[bakserver3] [nvarchar](50) NULL,"
  41. "[bakserver4] [nvarchar](50) NULL,"
  42. "[bakserver5] [nvarchar](50) NULL,"
  43. "[msgaccount] [nvarchar](24) NULL,"
  44. "[msgpsw] [nvarchar](16) NULL,"
  45. "[msgused] [nvarchar](50) NULL,"
  46. "[msgbalance] [nvarchar](50) NULL,"
  47. "[msgcheck1] [nvarchar](4) NULL,"
  48. "[msgcheck2] [nvarchar](4) NULL,"
  49. "[msgdays1] [nvarchar](50) NULL,"
  50. "[msgdays2] [nvarchar](50) NULL,"
  51. "[msgcontent1] [nvarchar](max) NULL,"
  52. "[msgcontent2] [nvarchar](max) NULL,"
  53. "[remarks] [nvarchar](max) NULL,"
  54. "[rate] [nvarchar](50) NULL,"
  55. "[msgcheck3] [nvarchar](50) NULL,"
  56. "[msgcontent3] [nvarchar](max) NULL,"
  57. "[salarycheck1] [nvarchar](50) NULL,"
  58. "[salarycheck2] [nvarchar](50) NULL,"
  59. "[msgcheck4] [nvarchar](50) NULL,"
  60. "[msgtime] [nvarchar](50) NULL,"
  61. "[msgphones] [nvarchar](max) NULL,"
  62. "[info6] [nvarchar](50) NULL,"
  63. "[msgcompanyname] [nvarchar](50) NULL,"
  64. "[msgphones2] [nvarchar](max) NULL,"
  65. "[msgsendtype] [nvarchar](50) NULL,"
  66. "[msgcontent5] [nvarchar](max) NULL,"
  67. "[msgcheck5] [nvarchar](50) NULL,"
  68. "[msgcontent6] [nvarchar](max) NULL,"
  69. "[msgcheck6] [nvarchar](50) NULL,"
  70. "[cardlength] [varchar](50) NULL,"
  71. "[salarycheck3] [nvarchar](50) NULL,"
  72. "[salarycheck4] [nvarchar](50) NULL,"
  73. "[setcheck1] [nvarchar](50) NULL,"
  74. "[setcheck2] [nvarchar](50) NULL,"
  75. "[setcheck3] [nvarchar](50) NULL,"
  76. "[setcheck4] [nvarchar](50) NULL,"
  77. "[setcheck5] [nvarchar](50) NULL,"
  78. "[printer1] [nvarchar](50) NULL,"
  79. "[printer2] [nvarchar](50) NULL,"
  80. "[printer3] [nvarchar](50) NULL,"
  81. "[setprintstyle] [nvarchar](50) NULL,"
  82. "[uploadcheck1] [nvarchar](50) NULL,"
  83. "[uploadcheck2] [nvarchar](50) NULL,"
  84. "[uploadcheck3] [nvarchar](50) NULL,"
  85. "[uploadcheck4] [nvarchar](50) NULL,"
  86. "[bak11] [nvarchar](50) NULL,"
  87. "[bak22] [nvarchar](50) NULL,"
  88. "[bak33] [nvarchar](50) NULL,"
  89. "[bak44] [nvarchar](50) NULL,"
  90. "[setprintstyle2] [nvarchar](50) NULL,"
  91. "[setcheck10] [nvarchar](50) NULL,"
  92. "[ziptype1] [nvarchar](50) NULL,"
  93. "[ziptype2] [nvarchar](50) NULL,"
  94. "[ziptype3] [nvarchar](50) NULL,"
  95. "[ziptype4] [nvarchar](50) NULL,"
  96. "[salaryset] [nvarchar](max) NULL,"
  97. "[limitcount1] [nvarchar](50) NULL,"
  98. "[limitcount2] [nvarchar](50) NULL,"
  99. "[limitcount3] [nvarchar](50) NULL,"
  100. "[rate2] [nvarchar](50) NULL,"
  101. "[setcheck11] [nvarchar](50) NULL,"
  102. "[setcheck12] [nvarchar](50) NULL,"
  103. "[setprintstyle3] [nvarchar](50) NULL,"
  104. "[msgcheck7] [nvarchar](50) NULL,"
  105. "[msgcheck8] [nvarchar](50) NULL,"
  106. "[msgcheck9] [nvarchar](50) NULL,"
  107. "[msgcheck10] [nvarchar](50) NULL,"
  108. "[msgcontent8] [nvarchar](max) NULL,"
  109. "[msgcontent9] [nvarchar](max) NULL,"
  110. "[msgcontent10] [nvarchar](max) NULL,"
  111. "[setcheck13] [nvarchar](50) NULL,"
  112. "[time1] [nvarchar](50) NULL,"
  113. "[time2] [nvarchar](50) NULL,"
  114. "[time3] [nvarchar](50) NULL,"
  115. "[setcheck14] [nvarchar](50) NULL,"
  116. "[setcheck15] [nvarchar](50) NULL,"
  117. "[msgcheck11] [nvarchar](50) NULL,"
  118. "[msgcheck12] [nvarchar](50) NULL,"
  119. "[msgcheck13] [nvarchar](50) NULL,"
  120. "[msgcheck14] [nvarchar](50) NULL,"
  121. "[msgcontent11] [nvarchar](max) NULL,"
  122. "[msgcontent12] [nvarchar](max) NULL,"
  123. "[msgcontent13] [nvarchar](max) NULL,"
  124. "[msgcontent14] [nvarchar](max) NULL,"
  125. "[setcheck6] [nvarchar](50) NULL,"
  126. "[msgcheck15] [nvarchar](50) NULL,"
  127. "[msgcontent15] [nvarchar](max) NULL,"
  128. "[logdays] [nvarchar](50) NULL,"
  129. "[setcheck17] [nvarchar](50) NULL,"
  130. "[setcheck18] [nvarchar](50) NULL,"
  131. "[setcheck19] [nvarchar](50) NULL,"
  132. "[uploadrule] [nvarchar](max) NULL,"
  133. "[setcheck20] [nvarchar](50) NULL,"
  134. "[cardnum] [nvarchar](50) NULL,"
  135. "[cardscale] [nvarchar](500) NULL,"
  136. "[info7] [nvarchar](120) NULL,"
  137. "[setcheck21] [nvarchar](50) NULL,"
  138. "[msgcheck16] [nvarchar](50) NULL,"
  139. "[hospitalmsgcheck1] [nvarchar](50) NULL,"
  140. "[hospitalmsgcheck2] [nvarchar](50) NULL,"
  141. "[uVer] [float] NOT NULL Default(0.0),"
  142. "[serialno] [nvarchar](50) NULL,"
  143. "[serialno2] [nvarchar](50) NULL,"
  144. "[msgcheck17] [nvarchar](50) NULL,"
  145. "[msgcontent17] [nvarchar](max) NULL,"
  146. "[setcheck22] [nvarchar](50) NULL,"
  147. "[setcheck23] [nvarchar](50) NULL,"
  148. "[info8] [nvarchar](120) NULL,"
  149. "[setcheck24] [nvarchar](120) NULL,"
  150. "[outtime] [nvarchar](120) NULL,"
  151. "[info9] [nvarchar](120) NULL,"
  152. "[reverse1] [nvarchar](50) NULL,"
  153. "[reverse2] [nvarchar](50) NULL,"
  154. "[reverse3] [nvarchar](50) NULL,"
  155. "[reverse4] [nvarchar](50) NULL,"
  156. "[reverse5] [nvarchar](4000) NULL,"
  157. "[msAccount] [nvarchar](12) NULL,"
  158. "[msPassword] [nvarchar](16) NULL,"
  159. "[photo] [image] NULL,"
  160. "[delcheck1] [nvarchar](50) NULL,"
  161. "[delcheck2] [nvarchar](50) NULL,"
  162. "[delcheck3] [nvarchar](50) NULL,"
  163. "[delcheck4] [nvarchar](50) NULL,"
  164. "[deledit1] [nvarchar](50) NULL,"
  165. "[deledit2] [nvarchar](50) NULL,"
  166. "[deledit3] [nvarchar](50) NULL,"
  167. "[deledit4] [nvarchar](50) NULL,"
  168. "[alarmdays1] [nvarchar](50) NULL,"
  169. "[alarmdays2] [nvarchar](50) NULL,"
  170. "[alarmdays3] [nvarchar](50) NULL,"
  171. "[alarmdays4] [nvarchar](50) NULL,"
  172. "[alarmdays5] [nvarchar](50) NULL,"
  173. "[alarmdays6] [nvarchar](50) NULL,"
  174. "[original] [bit] NOT NULL Default(0)"
  175. ") ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]";
  176. string g_sqlNetshare = "CREATE TABLE [dbo].[NetShareInfo]("
  177. "[enable] [bit] NOT NULL,"
  178. "[branchid] [nvarchar](32) NOT NULL,"
  179. "[sharePath] [nvarchar](64) NOT NULL,"
  180. "[mincapacity] [tinyint] NOT NULL,"
  181. "[maxcapacity] [tinyint] NOT NULL,"
  182. "[photoType] [tinyint] NOT NULL,"
  183. "[priority] [tinyint] NOT NULL,"
  184. "CONSTRAINT [PK_NetShareInfo] PRIMARY KEY CLUSTERED ([sharePath] ASC"
  185. ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],"
  186. "CONSTRAINT [UPK_NetShareInfo] UNIQUE NONCLUSTERED ("
  187. "[branchid] ASC,"
  188. "[photoType] ASC,"
  189. "[priority] ASC"
  190. ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]"
  191. ") ON [PRIMARY]";
  192. // 宏定义;
  193. #define DB_SS_CONN_WITH_PORT _T("driver={SQL Server};Server=%s,%s;database=%s;uid=%s;pwd=%s")
  194. #define DB_SS_CONN_WITHOUT_PORT _T("driver={SQL Server};Server=%s;database=%s;uid=%s;pwd=%s")
  195. #define DB_SS_CONN_WITHOUT_PORT2 _T("driver={SQL Server};Server=%s;database=%s;uid=%s;pwd=%s")
  196. #define DB_SW_CONN_WITH_PORT _T("Driver={SQL Server};Server=%s,%s;Database=%s;Trusted_Connection=yes;")
  197. #define DB_SW_CONN_WITHOUT_PORT _T("Driver={SQL Server};Server=%s;Database=%s;Trusted_Connection=yes;")
  198. #define DB_SW_CONN_WITHOUT_PORT2 _T("Driver={SQL Server};Server=%s;Database=%s;Trusted_Connection=yes;")
  199. /************************************************************************/
  200. /* 函数:[3/12/2018 Jeff];
  201. /* 描述:;
  202. /* 参数:;
  203. /* [IN] szPath:;
  204. /* [IN] szIniName:;
  205. /* [IN/OUT] :;
  206. /* 返回:void;
  207. /* 注意:;
  208. /* 示例:;
  209. /*
  210. /* 修改:;
  211. /* 日期:;
  212. /* 内容:;
  213. /************************************************************************/
  214. int GetIniInfo(const char *szPath, const char *szIniName)
  215. {
  216. char szDrive[_MAX_DRIVE] = { 0 };
  217. char szDir[_MAX_DIR] = { 0 };
  218. char szFna[_MAX_DIR] = { 0 };
  219. char szExt[_MAX_DIR] = { 0 };
  220. char szModulepath[MAX_PATH] = {0};
  221. char szModulefile[MAX_PATH] = {0};
  222. ::GetModuleFileName(NULL, szModulepath, sizeof(szModulepath) / sizeof(TCHAR));
  223. sprintf(szModulefile, _T("%s"), szModulepath);
  224. _tsplitpath(szModulepath, szDrive, szDir, szFna, szExt);
  225. _tcscpy(szModulepath, szDrive);
  226. _tcscat(szModulepath, szDir);
  227. char szInifile[MAX_PATH] = { 0 };
  228. if (szPath != NULL && szIniName != NULL)
  229. sprintf(szInifile, _T("%s%s"), szPath, szIniName);
  230. else
  231. sprintf(szInifile, _T("%sServiceInfo.ini"), szModulepath);
  232. HANDLE hFile = CreateFile(szInifile, 0/*GENERIC_READ*/, 0, NULL, OPEN_EXISTING, 0, NULL);
  233. if (ERROR_FILE_NOT_FOUND == GetLastError())
  234. {
  235. return -1;
  236. }
  237. CloseHandle(hFile);
  238. hFile = NULL;
  239. // 获取服务器端信息;
  240. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbSource"), _T(""), g_szDBSource, MAX_PATH, szInifile);
  241. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbServerPort"), _T(""), g_szDBServerPort, MAX_PATH, szInifile);
  242. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbAccount"), _T(""), g_szDBAccount, MAX_PATH, szInifile);
  243. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbPassWord"), _T(""), g_szDBPassWord, MAX_PATH, szInifile);
  244. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbName"), _T(""), g_szDBName, MAX_PATH, szInifile);
  245. return 0;
  246. }
  247. /************************************************************************/
  248. /* 函数:[3/12/2018 Jeff];
  249. /* 描述:;
  250. /* 参数:;
  251. /* [IN] server: 数据服务器名(或IP地址);
  252. /* [IN] port: 数据服务器端口;
  253. /* [IN] dbuser: 数据库用户名;
  254. /* [IN] dbpassword: 数据库登录密码;
  255. /* [IN] dbname: 数据库名称;
  256. /* 返回:成功连接数据返回true,否则返回false;
  257. /* 注意:;
  258. /* 示例:;
  259. /*
  260. /* 修改:;
  261. /* 日期:;
  262. /* 内容:;
  263. /************************************************************************/
  264. bool OpenDatabase(string server, string port, string dbuser, string dbpassword, string dbname)
  265. {
  266. // 关闭之前打开的;
  267. if ( g_pDBPtr )
  268. delete g_pDBPtr;
  269. g_pDBPtr = NULL;
  270. // 参数有效性;
  271. if ( server.size() == 0 || dbuser.size() == 0 || dbpassword.size() == 0 || dbname.size() == 0 )
  272. return false;
  273. // 生成连接串;
  274. char szconn[MAX_PATH] = {0};
  275. if ( port.size() == 0 || port == "0" )
  276. {
  277. if (strcmp(dbuser.c_str(), "") == 0 )
  278. sprintf(szconn, DB_SW_CONN_WITHOUT_PORT, server.c_str(), dbname.c_str());
  279. else
  280. sprintf(szconn, DB_SS_CONN_WITHOUT_PORT, server.c_str(), dbname.c_str(), dbuser.c_str(), dbpassword.c_str());
  281. }
  282. else
  283. {
  284. if (strcmp(dbuser.c_str(), "") == 0 )
  285. sprintf(szconn, DB_SW_CONN_WITH_PORT, server.c_str(), port.c_str(), dbname.c_str());
  286. else
  287. sprintf(szconn, DB_SS_CONN_WITH_PORT, server.c_str(), port.c_str(), dbname.c_str(), dbuser.c_str(), dbpassword.c_str());
  288. }
  289. // 赋值全局变量;
  290. g_strconnect = szconn;
  291. // 打开数据库;
  292. if (g_pDBPtr == NULL)
  293. {
  294. try
  295. {
  296. g_pDBPtr = new CDatabase;
  297. g_pDBPtr->OpenEx(g_strconnect.c_str(), CDatabase::noOdbcDialog);
  298. }
  299. catch (CDBException* e)
  300. {
  301. delete g_pDBPtr;
  302. g_pDBPtr = NULL;
  303. #ifdef _DEBUG
  304. OutputDebugString(string(e->m_strError).append("\n").c_str());
  305. #endif
  306. e->Delete();
  307. return false;
  308. }
  309. }
  310. return true;
  311. }
  312. /************************************************************************/
  313. /* 函数:[3/12/2018 Jeff];
  314. /* 描述:;
  315. /* 参数:;
  316. /* [IN] :;
  317. /* [OUT] :;
  318. /* [IN/OUT] :;
  319. /* 返回:void;
  320. /* 注意:;
  321. /* 示例:;
  322. /*
  323. /* 修改:;
  324. /* 日期:;
  325. /* 内容:;
  326. /************************************************************************/
  327. bool IsTableExists(string tabname)
  328. {
  329. if ( g_pDBPtr == NULL)
  330. {
  331. cout << "数据库未打开!" << endl;
  332. return false;
  333. }
  334. if ( tabname.size() == 0 )
  335. {
  336. cout << "表名空!" << endl;
  337. return false;
  338. }
  339. // 串接语句;
  340. char szSql[MAX_PATH] = {0};
  341. sprintf(szSql, "select count(1) as tbcount from sys.objects where name = '%s'", tabname.c_str());
  342. CString strValue;
  343. CRecordset set(g_pDBPtr);
  344. set.Open(CRecordset::forwardOnly, szSql);
  345. set.GetFieldValue("tbcount",strValue);
  346. set.Close();
  347. return atoi(strValue) == 0 ? false : true;
  348. }
  349. /************************************************************************/
  350. /* 函数:[3/12/2018 Jeff];
  351. /* 描述:;
  352. /* 参数:;
  353. /* [IN] :;
  354. /* [OUT] :;
  355. /* [IN/OUT] :;
  356. /* 返回:void;
  357. /* 注意:;
  358. /* 示例:;
  359. /*
  360. /* 修改:;
  361. /* 日期:;
  362. /* 内容:;
  363. /************************************************************************/
  364. int getzcdata(vector<zcdata> &zc)
  365. {
  366. if ( g_pDBPtr == NULL)
  367. {
  368. cout << "数据库未打开!" << endl;
  369. return false;
  370. }
  371. // 串接语句;
  372. string sql = "select dindan.id as orderId,"
  373. " clientnew.name1, "
  374. " clientnew.name2, "
  375. " clientnew.name3, "
  376. " clientnew.birthday1, "
  377. " clientnew.birthday2, "
  378. " clientnew.birthday3, "
  379. " clientnew.phone1, "
  380. " clientnew.phone2, "
  381. " clientnew.qq1, "
  382. " clientnew.qq2, "
  383. " clientnew.addr1, "
  384. " clientnew.addr2, "
  385. " clientnew.area, "
  386. " clientnew.area2, "
  387. " clientnew.time3, "
  388. " clientnew.check1, "
  389. " clientnew.check2, "
  390. " clientnew.check3, "
  391. " clientnew.check4, "
  392. " clientnew.sex, "
  393. " clientnew.zodiac "
  394. "from [clientnew] inner join dindan on dindan.clientid = clientnew.clientid";
  395. try{
  396. CRecordset set(g_pDBPtr);
  397. set.Open(CRecordset::forwardOnly, sql.c_str());
  398. while (!set.IsEOF())
  399. {
  400. zcdata data;
  401. set.GetFieldValue("orderId",data.id);
  402. set.GetFieldValue("name1",data.name1);
  403. set.GetFieldValue("name2",data.name2);
  404. set.GetFieldValue("name3",data.name3);
  405. set.GetFieldValue("birthday1",data.birthday1);
  406. set.GetFieldValue("birthday2",data.birthday2);
  407. set.GetFieldValue("birthday3",data.birthday3);
  408. set.GetFieldValue("phone1",data.phone1);
  409. set.GetFieldValue("phone2",data.phone2);
  410. set.GetFieldValue("qq1",data.qq1);
  411. set.GetFieldValue("qq2",data.qq2);
  412. set.GetFieldValue("addr1",data.addr1);
  413. set.GetFieldValue("addr2",data.addr2);
  414. set.GetFieldValue("area",data.area);
  415. set.GetFieldValue("area2",data.area2);
  416. set.GetFieldValue("time3",data.time3);
  417. set.GetFieldValue("check1",data.check1);
  418. set.GetFieldValue("check2",data.check2);
  419. set.GetFieldValue("check3",data.check3);
  420. set.GetFieldValue("check4",data.check4);
  421. set.GetFieldValue("sex",data.sex);
  422. set.GetFieldValue("zodiac",data.zodiac);
  423. zc.push_back(data);
  424. set.MoveNext();
  425. }
  426. set.Close();
  427. }
  428. catch(CDBException *e)
  429. {
  430. cout << e->m_strError << endl;
  431. }
  432. return zc.size();
  433. }
  434. /************************************************************************/
  435. /* 函数:[3/12/2018 Jeff];
  436. /* 描述:;
  437. /* 参数:;
  438. /* [IN] :;
  439. /* [OUT] :;
  440. /* [IN/OUT] :;
  441. /* 返回:void;
  442. /* 注意:;
  443. /* 示例:;
  444. /*
  445. /* 修改:;
  446. /* 日期:;
  447. /* 内容:;
  448. /************************************************************************/
  449. bool zc2lyfz(zcdata &data, bool child)
  450. {
  451. if ( g_pDBPtr == NULL)
  452. {
  453. cout << "数据库未打开!" << endl;
  454. return false;
  455. }
  456. // 串接语句;
  457. static char szSql[1024*8] = {0};
  458. sprintf(szSql, "select count(1) as ct from client where id = '%s'", data.id);
  459. CString strValue;
  460. CRecordset set(g_pDBPtr);
  461. set.Open(CRecordset::forwardOnly, szSql);
  462. set.GetFieldValue("ct",strValue);
  463. set.Close();
  464. if ( atoi(strValue) == 0 )
  465. {// 插入;
  466. if (child)
  467. sprintf(szSql,
  468. "insert into client(id,name1,name2,phone1,phone2,qq1,qq2,addr1,addr2,birthday1,birthday2,time3,area,area2,check1,check2,check3,sex,zodiac) "
  469. "values('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
  470. data.id, data.name1,data.name3, data.phone1, data.phone2,
  471. data.qq1,data.qq2,data.addr1,data.addr2,data.birthday1,data.birthday3,
  472. data.time3,data.area,data.area2,data.check1,data.check2,data.check3,
  473. data.sex,data.zodiac);
  474. else
  475. sprintf(szSql,
  476. "insert into client(id,name1,name2,phone1,phone2,qq1,qq2,addr1,addr2,birthday1,birthday2,time3,area,area2,check1,check2,check3,sex,zodiac) "
  477. "values('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
  478. data.id, data.name1,data.name2, data.phone1, data.phone2,
  479. data.qq1,data.qq2,data.addr1,data.addr2,data.birthday1,data.birthday2,
  480. data.time3,data.area,data.area2,data.check1,data.check2,data.check3,
  481. data.sex,data.zodiac);
  482. }
  483. else
  484. {// 更新;
  485. if (child)
  486. sprintf(szSql,
  487. "update client set name1 = '%s',"
  488. " name2 = '%s',"
  489. " phone1 = '%s',"
  490. " phone2 = '%s',"
  491. " qq1 = '%s', "
  492. " qq2 = '%s',"
  493. " addr1 = '%s', addr2 = '%s', birthday1 = '%s', birthday2 = '%s', time3 = '%s', area = '%s',"
  494. " area2 = '%s', check1 = '%s', check2 = '%s', check3 = '%s', sex = '%s', zodiac = '%s' where id = '%s' ",
  495. data.name1,data.name3, data.phone1, data.phone2,
  496. data.qq1,data.qq2,data.addr1,data.addr2,data.birthday1,data.birthday3,
  497. data.time3,data.area,data.area2,data.check1,data.check2,data.check3,
  498. data.sex,data.zodiac,data.id);
  499. else
  500. sprintf(szSql,
  501. "update client set name1 = '%s',"
  502. "name2 = '%s',"
  503. "phone1 = '%s',"
  504. "phone2 = '%s', "
  505. "qq1 = '%s', "
  506. "qq2 = '%s',"
  507. "addr1 = '%s', addr2 = '%s', birthday1 = '%s', birthday2 = '%s', time3 = '%s', area = '%s',"
  508. "area2 = '%s', check1 = '%s', check2 = '%s', check3 = '%s', sex = '%s', zodiac = '%s' where id = '%s' ",
  509. data.name1,data.name2, data.phone1, data.phone2,
  510. data.qq1,data.qq2,data.addr1,data.addr2,data.birthday1,data.birthday2,
  511. data.time3,data.area,data.area2,data.check1,data.check2,data.check3,
  512. data.sex,data.zodiac,data.id);
  513. }
  514. #ifdef _DEBUG
  515. OutputDebugString(szSql);
  516. #endif
  517. try
  518. {
  519. g_pDBPtr->ExecuteSQL(szSql);
  520. }
  521. catch(CDBException *e)
  522. {
  523. #ifdef _DEBUG
  524. OutputDebugString(e->m_strError);
  525. #endif
  526. }
  527. }