123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "DMAdoDbF.h"
- #include "VMSCommLibF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- //TDMAdoDb *DMAdoDb = NULL;
- //---------------------------------------------------------------------------
- __fastcall TDMAdoDb::TDMAdoDb(TComponent* Owner)
- : TDataModule(Owner)
- {
- FConnString = "";
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::DataModuleCreate(TObject *Sender)
- {
- //
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::DataModuleDestroy(TObject *Sender)
- {
- //
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::SetErrorString(AnsiString AErrorString)
- {
- FErrorString = AErrorString;
- MERROR(AnsiString("DCOM " + FErrorString).c_str());
- Close();
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::SetConnectString(String AProvider, String AServerName, String AUserName, String APassword, String ACatalog/*=""*/)
- {
- FConnString = "";
- FConnString += "Provider=" + AProvider;
- FConnString += ";Password=" + APassword;
- FConnString += ";Persist Security Info=True";
- FConnString += ";User ID=" + AUserName;
- if (ACatalog != "")
- {
- FConnString += ";Initial Catalog=" + ACatalog;
- }
- FConnString += ";Data Source=" + AServerName;
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::SetConnectString(String AConnString)
- {
- FConnString = AConnString;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::Connect(String AConnStr/*=""*/)
- {
- bool bResult = false;
- FConnString = (AConnStr == "") ? FConnString : AConnStr;
- try
- {
- Close();
- FDbConn = new TADOConnection(NULL);
- if (!FDbConn) return false;
- FDbConn->ConnectionTimeout = 10;
- FDbConn->ConnectionString = FConnString;
- FDbConn->KeepConnection = true;
- FDbConn->LoginPrompt = false;
- FDbConn->Open();
- bResult = true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return bResult;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::Close()
- {
- bool bResult = false;
- try
- {
- if (!FDbConn) return false;
- if (FDbConn->Connected)
- {
- FDbConn->Close();
- FDbConn->Connected = false;
- }
- delete FDbConn;
- FDbConn = NULL;
- bResult = true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return bResult;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::SQLClose(TADOQuery *adoQry)
- {
- try
- {
- if (adoQry->Active)
- {
- adoQry->Recordset->Close();
- adoQry->Close();
- adoQry->Active = false;
- }
- adoQry->SQL->Clear();
- return true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return false;
- }
- //---------------------------------------------------------------------------
- int __fastcall TDMAdoDb::SQLText(TADOQuery *adoQry, String sQry)
- {
- try
- {
- adoQry->Close();
- adoQry->SQL->BeginUpdate();
- adoQry->SQL->Text = sQry;
- adoQry->SQL->EndUpdate();
- return 0;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return 0;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::SQLBind(TADOQuery *adoQry, String param, String var)
- {
- try
- {
- adoQry->Parameters->ParamByName(param)->Value = var;
- return true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return false;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::SQLBindStream(TADOQuery *adoQry, String param, TStream * pStream)
- {
- try
- {
- adoQry->Parameters->ParamByName(param)->LoadFromStream(pStream, ftBlob);
- return true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return false;
- }
- //---------------------------------------------------------------------------
- int __fastcall TDMAdoDb::SQLOpen(TADOQuery *adoQry)
- {
- try{
- #if 0
- if (0)
- {
- String sLogSql = adoQry->SQL->Text;
- sLogSql += "\r\n";
- for (int ii = 0; ii < adoQry->Parameters->Count; ii++)
- {
- sLogSql += ":" + adoQry->Parameters->Items[ii]->Name + " : " + adoQry->Parameters->Items[ii]->Value;
- sLogSql += "\r\n";
- }
- //LogSql(sLogSql);
- }
- #endif
- adoQry->Open();
- adoQry->First();
- return adoQry->RecordCount;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return -1;
- }
- //---------------------------------------------------------------------------
- int __fastcall TDMAdoDb::SQLExec(TADOQuery *adoQry)
- {
- try
- {
- #if 0
- if (0)
- {
- String sLogSql = adoQry->SQL->Text;
- sLogSql += "\r\n";
- for (int ii = 0; ii < adoQry->Parameters->Count; ii++)
- {
- sLogSql += ":" + adoQry->Parameters->Items[ii]->Name + " : " + adoQry->Parameters->Items[ii]->Value;
- sLogSql += "\r\n";
- }
- //LogSql(sLogSql);
- }
- #endif
- adoQry->ExecSQL();
- return adoQry->RowsAffected;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return -1;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::SQLClear(TADOQuery *adoQry)
- {
- try
- {
- adoQry->Close();
- adoQry->SQL->Clear();
- return true;
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return false;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::LocateItem(TADOQuery *adoQry, String sFldNm, String sFldVal)
- {
- try
- {
- TLocateOptions Opts;
- Opts.Clear();
- Opts << loPartialKey;
- return adoQry->Locate(sFldNm, sFldVal, Opts);
- }
- catch(EDatabaseError &E)
- {
- ErrorString = String(E.ClassName()) + E.Message;
- }
- catch (Exception &e)
- {
- ErrorString = String(e.ClassName()) + e.Message;
- }
- return false;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TDMAdoDb::IsDbAlive(AnsiString &ASysTime)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') AS CURTIME \r\n"
- " FROM DUAL \r\n";
- ASysTime = "";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Connection = GetConnection();
- SQLText(pADO, sQry);
- SQLOpen(pADO);
- ASysTime = pADO->FieldByName("CURTIME")->AsString;
- }
- catch(EDatabaseError &E)
- {
- DBERROR(String(E.ClassName()), E.Message, sQry);
- return false;
- }
- catch(Exception &e)
- {
- DBERROR(String(e.ClassName()), e.Message, sQry);
- return false;
- }
- }
- __finally
- {
- if (pADO)
- {
- SQLClose(pADO);
- delete pADO; pADO = NULL;
- }
- }
- MINFO("DCOM <<< Check Database Alive: Ok(%s)", ASysTime.c_str());
- return true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TDMAdoDb::SetDbState(bool AFlag, UINT AMsg)
- {
- if (AFlag)
- {
- SendMessage((HWND)g_AppCfg.lMainWinHandle, AMsg, dbm_status, 1);
- }
- else
- {
- SendMessage((HWND)g_AppCfg.lMainWinHandle, AMsg, dbm_status, -1);
- }
- }
- //---------------------------------------------------------------------------
|