DMDbF.cpp 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "DMDbF.h"
  5. #include "ITSLogF.h"
  6. #include "AppGlobalF.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TDMDb *DMDb;
  11. //---------------------------------------------------------------------------
  12. __fastcall TDMDb::TDMDb(TComponent* Owner)
  13. : TDataModule(Owner)
  14. {
  15. FConnString = "";
  16. FException = true;
  17. }
  18. //---------------------------------------------------------------------------
  19. void __fastcall TDMDb::DataModuleCreate(TObject *Sender)
  20. {
  21. //
  22. }
  23. //---------------------------------------------------------------------------
  24. void __fastcall TDMDb::DataModuleDestroy(TObject *Sender)
  25. {
  26. //
  27. }
  28. //---------------------------------------------------------------------------
  29. void __fastcall TDMDb::SetErrorString(String AErrorString)
  30. {
  31. FErrorString = AErrorString;
  32. }
  33. //---------------------------------------------------------------------------
  34. void __fastcall TDMDb::SetConnectString(String AProvider, String AServerName, String AUserName, String APassword, String ACatalog/*=""*/)
  35. {
  36. FConnString = "";
  37. FConnString += "Provider=" + AProvider;
  38. FConnString += ";Password=" + APassword;
  39. FConnString += ";Persist Security Info=True";
  40. FConnString += ";User ID=" + AUserName;
  41. if (ACatalog != "")
  42. {
  43. FConnString += ";Initial Catalog=" + ACatalog;
  44. }
  45. FConnString += ";Data Source=" + AServerName;
  46. }
  47. //---------------------------------------------------------------------------
  48. bool __fastcall TDMDb::Connect(String AConnStr/*=""*/)
  49. {
  50. bool bResult = false;
  51. try
  52. {
  53. Close();
  54. FDbConn = new TADOConnection(NULL);
  55. if (!FDbConn) return false;
  56. FDbConn->ConnectionTimeout = 10;
  57. FDbConn->ConnectionString = AConnStr == "" ? FConnString : AConnStr;
  58. FDbConn->KeepConnection = true;
  59. FDbConn->LoginPrompt = false;
  60. FDbConn->Open();
  61. bResult = true;
  62. }
  63. catch(EDatabaseError &E)
  64. {
  65. ErrorString = String(E.ClassName()) + E.Message;
  66. if (FException)
  67. {
  68. DBERRORMSG("Connect", String(E.ClassName()), E.Message, "Connect");
  69. throw Exception(ErrorString);
  70. }
  71. else
  72. {
  73. DBERRORLOG("Connect", String(E.ClassName()), E.Message, "Connect");
  74. }
  75. }
  76. catch (Exception &e)
  77. {
  78. ErrorString = String(e.ClassName()) + e.Message;
  79. if (FException)
  80. {
  81. DBERRORMSG("Connect", String(e.ClassName()), e.Message, "Connect");
  82. throw Exception(ErrorString);
  83. }
  84. else
  85. {
  86. DBERRORLOG("Connect", String(e.ClassName()), e.Message, "Connect");
  87. }
  88. }
  89. return bResult;
  90. }
  91. //---------------------------------------------------------------------------
  92. bool __fastcall TDMDb::Close()
  93. {
  94. bool bResult = false;
  95. try
  96. {
  97. if (!FDbConn) return false;
  98. if (FDbConn->Connected)
  99. {
  100. FDbConn->Close();
  101. FDbConn->Connected = false;
  102. }
  103. delete FDbConn;
  104. FDbConn = NULL;
  105. bResult = true;
  106. }
  107. catch(EDatabaseError &E)
  108. {
  109. ErrorString = String(E.ClassName()) + E.Message;
  110. if (FException)
  111. {
  112. DBERRORMSG("Close", String(E.ClassName()), E.Message, "Close");
  113. throw Exception(ErrorString);
  114. }
  115. else
  116. {
  117. DBERRORLOG("Close", String(E.ClassName()), E.Message, "Close");
  118. }
  119. }
  120. catch (Exception &e)
  121. {
  122. ErrorString = String(e.ClassName()) + e.Message;
  123. if (FException)
  124. {
  125. DBERRORMSG("Close", String(e.ClassName()), e.Message, "Close");
  126. throw Exception(ErrorString);
  127. }
  128. else
  129. {
  130. DBERRORLOG("Close", String(e.ClassName()), e.Message, "Close");
  131. }
  132. }
  133. return bResult;
  134. }
  135. //---------------------------------------------------------------------------
  136. bool __fastcall TDMDb::SQLClose(TADOQuery *adoQry)
  137. {
  138. #if 0
  139. try
  140. #endif
  141. {
  142. if (adoQry->Active)
  143. {
  144. adoQry->Recordset->Close();
  145. adoQry->Close();
  146. adoQry->Active = false;
  147. }
  148. adoQry->SQL->Clear();
  149. return true;
  150. }
  151. #if 0
  152. catch(EDatabaseError &E)
  153. {
  154. ErrorString = String(E.ClassName()) + E.Message;
  155. if (FException) throw Exception(ErrorString);
  156. }
  157. catch (Exception &exception)
  158. {
  159. ErrorString = String(exception.ClassName()) + exception.Message;
  160. if (FException) throw Exception(ErrorString);
  161. }
  162. return false;
  163. #endif
  164. }
  165. //---------------------------------------------------------------------------
  166. int __fastcall TDMDb::SQLText(TADOQuery *adoQry, String sQry)
  167. {
  168. #if 0
  169. try
  170. #endif
  171. {
  172. adoQry->Close();
  173. adoQry->SQL->Text = sQry;
  174. return 0;
  175. }
  176. #if 0
  177. catch(EDatabaseError &E)
  178. {
  179. ErrorString = String(E.ClassName()) + E.Message;
  180. if (FException) throw Exception(ErrorString);
  181. }
  182. catch (Exception &exception)
  183. {
  184. ErrorString = String(exception.ClassName()) + exception.Message;
  185. if (FException) throw Exception(ErrorString);
  186. }
  187. return 0;
  188. #endif
  189. }
  190. //---------------------------------------------------------------------------
  191. bool __fastcall TDMDb::SQLBind(TADOQuery *adoQry, String param, String var)
  192. {
  193. #if 0
  194. try
  195. #endif
  196. {
  197. adoQry->Parameters->ParamByName(param)->Value = var;
  198. return true;
  199. }
  200. #if 0
  201. catch(EDatabaseError &E)
  202. {
  203. ErrorString = String(E.ClassName()) + E.Message;
  204. if (FException) throw Exception(ErrorString);
  205. }
  206. catch (Exception &exception)
  207. {
  208. ErrorString = String(exception.ClassName()) + exception.Message;
  209. if (FException) throw Exception(ErrorString);
  210. }
  211. return false;
  212. #endif
  213. }
  214. //---------------------------------------------------------------------------
  215. bool __fastcall TDMDb::SQLBindStream(TADOQuery *adoQry, String param, TStream * pStream)
  216. {
  217. #if 0
  218. try
  219. #endif
  220. {
  221. adoQry->Parameters->ParamByName(param)->LoadFromStream(pStream, ftBlob);
  222. return true;
  223. }
  224. #if 0
  225. catch(EDatabaseError &E)
  226. {
  227. ErrorString = String(E.ClassName()) + E.Message;
  228. if (FException) throw Exception(ErrorString);
  229. }
  230. catch (Exception &exception)
  231. {
  232. ErrorString = String(exception.ClassName()) + exception.Message;
  233. if (FException) throw Exception(ErrorString);
  234. }
  235. return false;
  236. #endif
  237. }
  238. //---------------------------------------------------------------------------
  239. int __fastcall TDMDb::SQLOpen(TADOQuery *adoQry)
  240. {
  241. #if 0
  242. try
  243. #endif
  244. {
  245. #if 0
  246. if (0)
  247. {
  248. String sLogSql = adoQry->SQL->Text;
  249. sLogSql += "\r\n";
  250. for (int ii = 0; ii < adoQry->Parameters->Count; ii++)
  251. {
  252. sLogSql += ":" + adoQry->Parameters->Items[ii]->Name + " : " + adoQry->Parameters->Items[ii]->Value;
  253. sLogSql += "\r\n";
  254. }
  255. //LogSql(sLogSql);
  256. }
  257. #endif
  258. adoQry->Open();
  259. adoQry->First();
  260. return adoQry->RecordCount;
  261. }
  262. #if 0
  263. catch(EDatabaseError &E)
  264. {
  265. ErrorString = String(E.ClassName()) + E.Message;
  266. if (FException) throw Exception(ErrorString);
  267. }
  268. catch (Exception &exception)
  269. {
  270. ErrorString = String(exception.ClassName()) + exception.Message;
  271. if (FException) throw Exception(ErrorString);
  272. }
  273. return -1;
  274. #endif
  275. }
  276. //---------------------------------------------------------------------------
  277. int __fastcall TDMDb::SQLExec(TADOQuery *adoQry)
  278. {
  279. #if 0
  280. try
  281. #endif
  282. {
  283. #if 0
  284. if (0)
  285. {
  286. String sLogSql = adoQry->SQL->Text;
  287. sLogSql += "\r\n";
  288. for (int ii = 0; ii < adoQry->Parameters->Count; ii++)
  289. {
  290. sLogSql += ":" + adoQry->Parameters->Items[ii]->Name + " : " + adoQry->Parameters->Items[ii]->Value;
  291. sLogSql += "\r\n";
  292. }
  293. //LogSql(sLogSql);
  294. }
  295. #endif
  296. adoQry->ExecSQL();
  297. return adoQry->RowsAffected;
  298. }
  299. #if 0
  300. catch(EDatabaseError &E)
  301. {
  302. ErrorString = String(E.ClassName()) + E.Message;
  303. if (FException) throw Exception(ErrorString);
  304. }
  305. catch (Exception &exception)
  306. {
  307. ErrorString = String(exception.ClassName()) + exception.Message;
  308. if (FException) throw Exception(ErrorString);
  309. }
  310. return -1;
  311. #endif
  312. }
  313. //---------------------------------------------------------------------------
  314. bool __fastcall TDMDb::SQLClear(TADOQuery *adoQry)
  315. {
  316. #if 0
  317. try
  318. #endif
  319. {
  320. adoQry->Close();
  321. adoQry->SQL->Clear();
  322. return true;
  323. }
  324. #if 0
  325. catch(EDatabaseError &E)
  326. {
  327. ErrorString = String(E.ClassName()) + E.Message;
  328. if (FException) throw Exception(ErrorString);
  329. }
  330. catch (Exception &exception)
  331. {
  332. ErrorString = String(exception.ClassName()) + exception.Message;
  333. if (FException) throw Exception(ErrorString);
  334. }
  335. return false;
  336. #endif
  337. }
  338. //---------------------------------------------------------------------------
  339. bool __fastcall TDMDb::LocateItem(TADOQuery *adoQry, String sFldNm, String sFldVal)
  340. {
  341. #if 0
  342. try
  343. #endif
  344. {
  345. TLocateOptions Opts;
  346. Opts.Clear();
  347. Opts << loPartialKey;
  348. return adoQry->Locate(sFldNm, sFldVal, Opts);
  349. }
  350. #if 0
  351. catch(EDatabaseError &E)
  352. {
  353. ErrorString = String(E.ClassName()) + E.Message;
  354. if (FException) throw Exception(ErrorString);
  355. }
  356. catch (Exception &exception)
  357. {
  358. ErrorString = String(exception.ClassName()) + exception.Message;
  359. if (FException) throw Exception(ErrorString);
  360. }
  361. return false;
  362. #endif
  363. }
  364. //---------------------------------------------------------------------------