📄 global.cpp
字号:
// Global.cpp: implementation of the CGlobal class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Aotu.h"
#include "Global.h"
#include "AdoManager.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
CGlobal global;
#define szIniFileName ".\\config.ini"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGlobal::CGlobal()
{
memset(szConfigDB,0,sizeof(szConfigDB));
memset(szConOracl,0,sizeof(szConOracl));
memset(szConDM,0,sizeof(szConDM));
}
CGlobal::~CGlobal()
{
if (m_adoDM.IsOpen())
m_adoDM.CloseDb();
if (m_adoOR.IsOpen())
m_adoOR.CloseDb();
}
CGlobal::Init()
{
//初始化任务链表
char fullPath[1024]={0};
GetModuleFileName(AfxGetInstanceHandle(), fullPath,sizeof(fullPath));
char path_buffer[1024]={0};
char drive[1024]={0};
char dir[1024]={0};
char fname[1024]={0};
char ext[1024]={0};
strcpy(path_buffer,fullPath);
_splitpath( path_buffer, drive, dir, fname, ext);
sprintf(szConfigDB,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s%s%s",drive,dir,"\\TASK.mdb");
OpenConfigDB();
//读配置文件
char szUser[50]={0};
char szPsw[50]={0};
char szSource[50]={0};
GetPrivateProfileString("ORACLEINFO","USERID","hbTrip",szUser,sizeof(szUser),szIniFileName);
GetPrivateProfileString("ORACLEINFO","PASSWORD","hbTrip",szPsw,sizeof(szPsw),szIniFileName);
GetPrivateProfileString("ORACLEINFO","DATASOURCE","hbTrip",szSource,sizeof(szSource),szIniFileName);
//连接ORACL字符串
sprintf(szConOracl,"Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=%s;Password=%s;Data Source=%s",szUser,szPsw,szSource);
//读配置文件
char szUserdm[50]={0};
char szPswdm[50]={0};
char szSourcedm[50]={0};
char szSvrdm[50]={0};
GetPrivateProfileString("DMDBDS","USERID","SYSDBA",szUserdm,sizeof(szUserdm),szIniFileName);
GetPrivateProfileString("DMDBDS","PASSWORD","SYSDBA",szPswdm,sizeof(szPswdm),szIniFileName);
GetPrivateProfileString("DMDBDS","DATASOURCE","SYSTEM",szSourcedm,sizeof(szSourcedm),szIniFileName);
GetPrivateProfileString("DMDBDS","SVRNAME","127.0.0.1",szSvrdm,sizeof(szSvrdm),szIniFileName);
//连接ORACL字符串
//sprintf(szConDM,"Provider=DMOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s",szPswdm,szUserdm,szSourcedm,szSvrdm);
//sprintf(szConDM,"Provider=DMOLEDB.1;Password=SYSDBA;Persist Security Info=True;User ID=SYSDBA;Initial Catalog=HBEGS_CXFW;Data Source=127.0.0.1");
sprintf(szConDM,"Provider=DMOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s",szPswdm,szUserdm,szSourcedm,szSvrdm);
iAutoFlag=GetPrivateProfileInt ("AOTUSTRAT", "AOTUFLAG",-1,szIniFileName);
ConnDM();
ConnOR();
}
CGlobal::OpenConfigDB()
{
//if (m_TaskList.IsEmpty())
m_TaskListCs.Lock();
m_TaskList.RemoveAll();
m_TaskListCs.Unlock();
CAdoManager m_ado;
HRESULT hr=m_ado.OpenDb(szConfigDB);
if(!SUCCEEDED(hr))
{
AfxMessageBox("打开配置数据库ACCESS失败!");
}
CRecordSet *pSet=m_ado.CreateRecordSet("select * from t_task");
try
{
while (!pSet->IsEOF())
{
CTask *taskTmp=new CTask();
pSet->GetColVarSQL(taskTmp->TaskId,0);
pSet->GetColVar(&taskTmp->taskName,1);
pSet->GetColVar(&taskTmp->selectStr,2);
pSet->GetColVar(&taskTmp->insertStr,3);
pSet->GetColVar(&taskTmp->sourceTable,4);
pSet->GetColVar(&taskTmp->objectTable,5);
pSet->GetColVar(taskTmp->excuteTime,6);
pSet->GetColVarSQL(taskTmp->freday,7);
pSet->GetColVarSQL(taskTmp->frehour,8);
pSet->GetColVarSQL(taskTmp->freminute,9);
pSet->GetColVar(taskTmp->startTime,10);
pSet->GetColVar(taskTmp->endTime,11);
pSet->GetColVar(taskTmp->preEXTime,12);
pSet->GetColVar(taskTmp->nextEXTime,13);
pSet->GetColVarSQL(taskTmp->countTime,14);
pSet->GetColVarSQL(taskTmp->successSum,15);
pSet->GetColVarSQL(taskTmp->failedSum,16);
pSet->GetColVarSQL(taskTmp->overflag,17);
pSet->GetColVarSQL(taskTmp->selectcount,18);
m_TaskListCs.Lock();
m_TaskList.AddTail(taskTmp);
m_TaskListCs.Unlock();
pSet->MoveNext();
}
}
catch(...)
{
AfxMessageBox("读取ACCESS表错误!");
}
if (m_ado.IsOpen())
m_ado.CloseDb();
}
CGlobal::ConnDM()
{
hr=m_adoDM.OpenDb(szConDM);
if(!SUCCEEDED(hr))
{
//AfxMessageBox("打开DM数据库失败!");
m_log.PrintMsg("打开DM数据库失败!",ERRORMSG);
}
}
CGlobal::ConnOR()
{
hr=m_adoOR.OpenDb(szConOracl);
if(!SUCCEEDED(hr))
{
//AfxMessageBox("打开ORACLE数据库失败!");
m_log.PrintMsg("打开ORACLE数据库失败!",ERRORMSG);
}
}
CGlobal::TestConn()
{
int iDM=10;
int iOR=10;
int i=m_adoDM.Execute("select curtime()");
char aa[50]={0};
sprintf(aa,"%d",i);
//m_log.PrintMsg(aa);
CRecordSet* pSet1=m_adoDM.CreateRecordSet("select curtime()");
if(!pSet1)
{
m_log.PrintMsg("连接DM数据库失败!开始重连",ERRORMSG);
iDM=1;
}
try
{
if(!pSet1->IsEOF())
{
m_log.PrintMsg("达梦数据库连接测试!");
}
else
{
m_log.PrintMsg("连接DM数据库失败!开始重连",ERRORMSG);
iDM=1;
}
}
catch(...)
{
m_adoDM.DestroyRecordSet(pSet1);
m_log.PrintMsg("连接DM数据库失败!开始重连",ERRORMSG);
iDM=1;
}
m_adoDM.DestroyRecordSet(pSet1);
if (iDM==1)
ConnDM();
CRecordSet* pSet=m_adoOR.CreateRecordSet("SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL");
if(!pSet)
{
m_log.PrintMsg("连接oracle数据库失败!开始重连",ERRORMSG);
iOR=1;
}
try
{
if(!pSet->IsEOF())
{
m_log.PrintMsg("ORACLE数据库连接测试!");
}
else
{
m_log.PrintMsg("连接oracle数据库失败!开始重连",ERRORMSG);
iOR=1;
}
}
catch(...)
{
m_adoOR.DestroyRecordSet(pSet);
m_log.PrintMsg("连接oracle数据库失败!开始重连",ERRORMSG);
iOR=1;
}
m_adoOR.DestroyRecordSet(pSet);
if (iOR==1)
ConnOR();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -