📄 adosql.cpp
字号:
#include "StdAfx.h"
#include ".\adosql.h"
using namespace std;
AdoSQL::AdoSQL(void)
{
if(FAILED(::CoInitialize(NULL)))
{
Log("ADO 初始化失败!");
return ;
}
m_pConn.CreateInstance(__uuidof(Connection));
m_pConnVCP.CreateInstance(__uuidof(Connection));
//外网
char szConnSMSGA[] ="Provider=sqloledb.1;Persist Security Info=True;Data Source=222.76.211.9;Initial Catalog=SMSGA;User Id=SMSGADomain;Password=Domain911;Connect Timeout=15";
char szConnVCP[] = "Provider=sqloledb.1;Persist Security Info=True;Data Source=222.76.211.9;Initial Catalog=VCP;User Id=vcp;Password=Gb/t-Z2&2ds1423%#2D;Connect Timeout=15";
//内网
//char szConnSMSGA[] ="Provider=sqloledb.1;Persist Security Info=True;Data Source=192.168.0.53;Initial Catalog=SMSGA;User Id=yunyingpt;Password=yunyingpt;Connect Timeout=15";
//char szConnVCP[] = "Provider=sqloledb.1;Persist Security Info=True;Data Source=192.168.0.53;Initial Catalog=yunyingpt;User Id=yunyingpt;Password=yunyingpt;Connect Timeout=15";
AdoSQL::ConnectDataBase(m_pConn, szConnSMSGA);
AdoSQL::ConnectDataBase(m_pConnVCP, szConnVCP);
}
AdoSQL::~AdoSQL(void)
{
AdoSQL::CloseDataBase(this->m_pConn);
AdoSQL::CloseDataBase(this->m_pConnVCP);
}
bool AdoSQL::CloseDataBase(_ConnectionPtr const &pConn)
{
try
{
pConn->Close();
}
catch(_com_error &e)
{
Log("关闭数据失败!%s",(LPCTSTR)e.Description());
return false;
}
return true;
}
bool AdoSQL::ConnectDataBase(_ConnectionPtr const &pConn ,char const * pszConn)
{
HRESULT hr;
try
{
hr = pConn->Open(pszConn, "","",adModeUnknown);
}
catch(_com_error &e)
{
Log("Connection database SMSGA failed,error code:%s.",(LPCTSTR)e.Description());
return false;
}
//Log("Connect Remote DB successful...");
return true;
}
_ConnectionPtr const & AdoSQL::GetConnectionPtr() const
{
return m_pConn;
}
_ConnectionPtr const & AdoSQL::GetConnectionPtrVCP() const
{
return m_pConnVCP;
}
bool AdoSQL::ExucteSP_Weather(char const *szCode, char const *szCity , int iType ,string &ReturnInfo /*Out*/)
{
_ParameterPtr ptr1;
_ParameterPtr ptr2;
_ParameterPtr ptr3;
_ParameterPtr ptr4;
_CommandPtr cmd;
try
{
cmd.CreateInstance(__uuidof(Command));
ptr1.CreateInstance(__uuidof(Parameter));
ptr2.CreateInstance(__uuidof(Parameter));
ptr3.CreateInstance(__uuidof(Parameter));
ptr4.CreateInstance(__uuidof(Parameter));
ptr1->Name="Code ";
ptr1->Type=adVarChar;
ptr1->Size=10;
ptr1->Value=_variant_t(szCode);
ptr1->Direction=adParamInput;
cmd->Parameters->Append(ptr1);
ptr2->Name="City";
ptr2->Type=adVarChar;
ptr2->Size=20;
ptr2->Value=_variant_t(szCity);
ptr2->Direction=adParamInput;
cmd->Parameters->Append(ptr2);
ptr3->Name="Type ";
ptr3->Type = adInteger ;
ptr3->Size= sizeof(adInteger);
ptr3->Value=_variant_t(iType);
ptr3->Direction=adParamInput;
cmd->Parameters->Append(ptr3);
ptr4->Name="ReturnInfo";
ptr4->Type=adVarChar;
ptr4->Size=200;
ptr4->Direction=adParamOutput;
cmd->Parameters->Append(ptr4);
cmd->ActiveConnection = m_pConn;
cmd->CommandText = "Pro_Wth_Get";
cmd->CommandType = adCmdStoredProc;
cmd->Execute(NULL,NULL,adCmdStoredProc);
ReturnInfo =(LPCTSTR)(bstr_t)ptr4->Value;
return true;
}
catch(_com_error &e)
{
Log("SQL server Excute Pro_Wth_Get error! 城市代码:%s,城市名称:%s", szCode , szCity);
return false;
}
}
//该查询只能针对某个查询语句返回一个值
void AdoSQL::SelectDB(char * szSQl , string &RetInfo)
{
int ilen = strlen(szSQl);
if (0 == ilen)
return ;
#define GET_RECORD(in) \
try\
{\
strTemp=(LPTSTR)(_bstr_t)pRecordset->GetCollect(in);\
}\
catch(_com_error &e)\
{\
strTemp="0";\
}\
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t var;
try
{
pRecordset=m_pConn->Execute(bstr_t(szSQl ),&var,adCmdText);
if (!pRecordset->adoEOF)
{
string strTemp;
GET_RECORD("RetInfo");
RetInfo = strTemp ;
return ;
}
}
catch(_com_error &e)
{
Log("select Error:%s",(LPTSTR)e.Description());
return ;
}
return ;
}
bool AdoSQL::ExcuteIACShell(char const * szTelCode, char const * szMobile, string & sContent, char const * szLinkID, string & sSender, int & ReturnInfo)
{
_ParameterPtr ptr1;
_ParameterPtr ptr2;
_ParameterPtr ptr3;
_ParameterPtr ptr4;
_ParameterPtr ptr5;
_ParameterPtr ptr6;
_ParameterPtr ptr7;
_ParameterPtr ptr8;
_CommandPtr cmd;
try
{
cmd.CreateInstance(__uuidof(Command));
ptr1.CreateInstance(__uuidof(Parameter));
ptr2.CreateInstance(__uuidof(Parameter));
ptr3.CreateInstance(__uuidof(Parameter));
ptr4.CreateInstance(__uuidof(Parameter));
ptr5.CreateInstance(__uuidof(Parameter));
ptr6.CreateInstance(__uuidof(Parameter));
ptr7.CreateInstance(__uuidof(Parameter));
ptr8.CreateInstance(__uuidof(Parameter));
ptr1->Name="Mobile";
ptr1->Type=adVarChar;
ptr1->Size=20;
ptr1->Value=_variant_t(szMobile);
ptr1->Direction=adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr1);
ptr2->Name="TelCode";
ptr2->Type=adVarChar;
ptr2->Size=10;
ptr2->Value=_variant_t(szTelCode);
ptr2->Direction=::adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr2);
ptr3->Name="Content ";
ptr3->Type = adVarChar;
ptr3->Size= 200;
ptr3->Value=_variant_t(sContent.c_str());
ptr3->Direction=::adParamInput;
cmd->Parameters->Append(ptr3);
ptr4->Name="LinkID";
ptr4->Type=adVarChar;
ptr4->Size=50;
ptr4->Value =_variant_t(szLinkID);
ptr4->Direction=adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr4);
ptr5->Name="Sender";
ptr5->Type=adVarChar;
ptr5->Size=20;
ptr5->Value =_variant_t(sSender.c_str());
ptr5->Direction = adParamInput;
cmd->Parameters->Append(ptr5);
ptr6->Name="ContentOut";
ptr6->Type= adVarChar;
ptr6->Size=200;
ptr6->Direction=adParamOutput;
cmd->Parameters->Append(ptr6);
ptr7->Name="SenderOut";
ptr7->Type= adVarChar;
ptr7->Size=20;
ptr7->Direction=adParamOutput;
cmd->Parameters->Append(ptr7);
ptr8->Name="ReturnInfo";
ptr8->Type= adInteger;
ptr8->Size=sizeof(adInteger);
ptr8->Direction=adParamOutput;
cmd->Parameters->Append(ptr8);
cmd->ActiveConnection = m_pConn;
cmd->CommandText = "Pro_IAC_Shell";
cmd->CommandType = adCmdStoredProc;
cmd->Execute(NULL,NULL,adCmdStoredProc);
ReturnInfo = ptr8->Value;
if(-1 == ReturnInfo)
;
else
{
sContent = (LPCTSTR)(bstr_t)ptr6->Value;
sSender = (LPCTSTR)(bstr_t)ptr7->Value;
}
return true;
}
catch(_com_error &e)
{
sContent = "网络连接出错,请稍后再试!";
Log("SQL server Excute Pro_IAC_Shell error! %s " , (LPCTSTR)e.Description());
return false;
}
return true;
}
bool AdoSQL::Excu_CTSI_SMS_Insert_Shell_IAC(char const * szlinkID, char const * szMobile, string & sContent )
{
char szContentout[200]= {0};
_ParameterPtr ptr1;
_ParameterPtr ptr2;
_ParameterPtr ptr3;
_ParameterPtr ptr4;
_CommandPtr cmd;
try
{
cmd.CreateInstance(__uuidof(Command));
ptr1.CreateInstance(__uuidof(Parameter));
ptr2.CreateInstance(__uuidof(Parameter));
ptr3.CreateInstance(__uuidof(Parameter));
ptr4.CreateInstance(__uuidof(Parameter));
ptr1->Name="linkid";
ptr1->Type=adVarChar;
ptr1->Size=50;
ptr1->Value=_variant_t(szlinkID);
ptr1->Direction=adParamInput;
cmd->Parameters->Append(ptr1);
ptr2->Name="mobile";
ptr2->Type=adVarChar;
ptr2->Size=20;
ptr2->Value=_variant_t(szMobile);
ptr2->Direction=adParamInput;
cmd->Parameters->Append(ptr2);
ptr3->Name="content";
ptr3->Type=adVarChar;
ptr3->Size=200;
ptr3->Value=_variant_t(sContent.c_str());
ptr3->Direction=adParamInput;
cmd->Parameters->Append(ptr3);
ptr4->Name="contentout";
ptr4->Type=adVarChar;
ptr4->Size=200;
ptr4->Value=_variant_t(szContentout);
ptr4->Direction=adParamOutput;
cmd->Parameters->Append(ptr4);
cmd->ActiveConnection = m_pConnVCP;
cmd->CommandText = "CTSI_SMS_Insert_Shell_IAC";
cmd->CommandType = adCmdStoredProc;
cmd->Execute(NULL,NULL,adCmdStoredProc);
//szContentout = ptr4->Value;
/*if(null == ptr4->Value)
{
sContent = "网络连接出错,请稍后再试!" ;
Log("SQL server Excute CTSI_SMS_Insert_Shell_IAC error! 过程返回空值!");
return false;
}
else
{*/
sContent = (LPCTSTR)(bstr_t)ptr4->Value;
//}
return true;
}
catch(_com_error &e)
{
sContent = "网络连接出错,请稍后再试!" ;
Log("SQL server Excute CTSI_SMS_Insert_Shell_IAC error! %s " , (LPCTSTR)e.Description());
return false;
}
return true;
}
bool AdoSQL::ExcuSP_Pro_IAC_GetBiz_Shell(char const * szTelCode, char const * szMobile, string & sContent, \
char const * szLinkID, string & sSender, int & BusinessID , int & ReturnValue /*output--返回:1成功、-1转向网站搜索*/)
{
_ParameterPtr ptr1;
_ParameterPtr ptr2;
_ParameterPtr ptr3;
_ParameterPtr ptr4;
_ParameterPtr ptr5;
_ParameterPtr ptr6;
_ParameterPtr ptr7;
_CommandPtr cmd;
try
{
cmd.CreateInstance(__uuidof(Command));
ptr1.CreateInstance(__uuidof(Parameter));
ptr2.CreateInstance(__uuidof(Parameter));
ptr3.CreateInstance(__uuidof(Parameter));
ptr4.CreateInstance(__uuidof(Parameter));
ptr5.CreateInstance(__uuidof(Parameter));
ptr6.CreateInstance(__uuidof(Parameter));
ptr7.CreateInstance(__uuidof(Parameter));
ptr1->Name="Mobile";
ptr1->Type=adVarChar;
ptr1->Size=20;
ptr1->Value=_variant_t(szMobile);
ptr1->Direction=adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr1);
ptr2->Name="TelCode";
ptr2->Type=adVarChar;
ptr2->Size=10;
ptr2->Value=_variant_t(szTelCode);
ptr2->Direction=::adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr2);
ptr3->Name="Content ";
ptr3->Type = adVarChar;
ptr3->Size= 200;
ptr3->Value=_variant_t(sContent.c_str());
ptr3->Direction=::adParamInput;
cmd->Parameters->Append(ptr3);
ptr4->Name="LinkID";
ptr4->Type=adVarChar;
ptr4->Size=50;
ptr4->Value =_variant_t(szLinkID);
ptr4->Direction=adParamInput ; //adParamInput;
cmd->Parameters->Append(ptr4);
ptr5->Name="Sender";
ptr5->Type=adVarChar;
ptr5->Size=20;
ptr5->Value =_variant_t(sSender.c_str());
ptr5->Direction = adParamInput;
cmd->Parameters->Append(ptr5);
ptr6->Name="BusinessID";
ptr6->Type= adInteger;
ptr6->Size=sizeof(adInteger);
ptr6->Direction=adParamOutput;
cmd->Parameters->Append(ptr6);
ptr7->Name="ReturnValue";
ptr7->Type= adInteger;
ptr7->Size=sizeof(adInteger);
ptr7->Direction=adParamOutput;
cmd->Parameters->Append(ptr7);
cmd->ActiveConnection = m_pConn;
cmd->CommandText = "Pro_IAC_GetBiz_Shell";
cmd->CommandType = adCmdStoredProc;
cmd->Execute(NULL,NULL,adCmdStoredProc);
_variant_t var;
var=ptr7->Value;
if(ptr7->Value.vt == VT_NULL || ptr7->Value.vt == VT_EMPTY)
{
Log("ReturnValue返回值为空!");
return false;
}
else
{
ReturnValue =(int) ptr7->Value;
if(1 == ReturnValue)
{
if(ptr6->Value.vt == VT_NULL || ptr6->Value.vt == VT_EMPTY)
{
Log("BusinessID返回值为空!");
return false;
}
BusinessID =(int) ptr6->Value;
}
return true;
}
}
catch(_com_error &e)
{
sContent = "网络连接出错,请稍后再试!";
Log("SQL server Excute Pro_IAC_GetBiz_Shell error! %s " , (LPCTSTR)e.Description());
return false;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -