📄 clsadooperater.cpp
字号:
CComVariant ccvar;
ccvar = "";
ccvar.Detach(pszName);
ccvar.Clear();
ccvar = "";
ccvar.Detach(pszPhone);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szTableId);
::SysFreeString(szXh);
::SysFreeString(szKeyWords);
return S_FALSE;
}
CComVariant ccvar;
// 6. 取输出参数
try
{
GetProcResult(g_pStmt,m_parameters,iParaCount);
ccvar = m_parameters[4].paramValue.c_str();
ccvar.Detach(pszName);
ccvar.Clear();
ccvar = m_parameters[5].paramValue.c_str();
ccvar.Detach(pszPhone);
ccvar.Clear();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "";
ccvar.Detach(pszName);
ccvar.Clear();
ccvar = "";
ccvar.Detach(pszPhone);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szTableId);
::SysFreeString(szXh);
::SysFreeString(szKeyWords);
return S_FALSE;
}
::SysFreeString(szBhType);
::SysFreeString(szTableId);
::SysFreeString(szXh);
::SysFreeString(szKeyWords);
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
return S_OK;
}
STDMETHODIMP CClsAdoOperater::PKSendSMS(BSTR szBhType, BSTR szXh, BSTR szFlm,
BSTR szKeyWords, BSTR szCallingPhone,
BSTR szUserType, BSTR szPoint,
VARIANT *plRet)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
std::string m_strProcedureName = "PK_query.sendsms";
db::ParamStruct m_parameters[8];
int iParaCount = 8;
//报号类型
SetParaContent(m_parameters[0],db::PT_IN,
_com_util::ConvertBSTRToString(szBhType),db::DT_STRING,"");
//序号
SetParaContent(m_parameters[1],db::PT_IN,
_com_util::ConvertBSTRToString(szXh),db::DT_STRING,"");
//分类码
SetParaContent(m_parameters[2],db::PT_IN,
_com_util::ConvertBSTRToString(szFlm),db::DT_STRING,"");
//关键词
SetParaContent(m_parameters[3],db::PT_IN,
_com_util::ConvertBSTRToString(szKeyWords),db::DT_STRING,"");
//接收sms的手机号码
SetParaContent(m_parameters[4],db::PT_IN,
_com_util::ConvertBSTRToString(szCallingPhone),db::DT_STRING,"");
//用户类型
SetParaContent(m_parameters[5],db::PT_IN,
_com_util::ConvertBSTRToString(szUserType),db::DT_STRING,"");
//查号台id:1=南泰;2=黄兴;3=万里;
SetParaContent(m_parameters[6],db::PT_IN,
_com_util::ConvertBSTRToString(szPoint),db::DT_STRING,"");
//返回结果1=成功;0=失败;
SetParaContent(m_parameters[7],db::PT_OUT,"",db::DT_INT,"");
// 2. 产生执行存储过程的sql语句
std::string sql = g_DbDriver->GenStoredProcedureSql(m_strProcedureName,iParaCount);
// 3. 编译sql
try
{
g_pStmt = g_pConn->PrepareCall(sql);
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// //g_dbStatProbe.SetOff(m_strDSN);
//
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(plRet);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szXh);
::SysFreeString(szFlm);
::SysFreeString(szKeyWords);
::SysFreeString(szCallingPhone);
::SysFreeString(szUserType);
::SysFreeString(szPoint);
return S_FALSE;
}
// 4. 设置输入参数并注册输出参数
try
{
SetInputAndRegOuput(g_pStmt,m_parameters,iParaCount);
}
catch (const db::SqlException &e)
{
//置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(plRet);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szXh);
::SysFreeString(szFlm);
::SysFreeString(szKeyWords);
::SysFreeString(szCallingPhone);
::SysFreeString(szUserType);
::SysFreeString(szPoint);
return S_FALSE;
}
// 5. execute
try
{
g_pStmt->Execute();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(plRet);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szXh);
::SysFreeString(szFlm);
::SysFreeString(szKeyWords);
::SysFreeString(szCallingPhone);
::SysFreeString(szUserType);
::SysFreeString(szPoint);
return S_FALSE;
}
CComVariant ccvar;
// 6. 取输出参数
try
{
GetProcResult(g_pStmt,m_parameters,iParaCount);
ccvar = m_parameters[7].paramValue.c_str();
ccvar.Detach(plRet);
ccvar.Clear();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(plRet);
ccvar.Clear();
::SysFreeString(szBhType);
::SysFreeString(szXh);
::SysFreeString(szFlm);
::SysFreeString(szKeyWords);
::SysFreeString(szCallingPhone);
::SysFreeString(szUserType);
::SysFreeString(szPoint);
return S_FALSE;
}
::SysFreeString(szBhType);
::SysFreeString(szXh);
::SysFreeString(szFlm);
::SysFreeString(szKeyWords);
::SysFreeString(szCallingPhone);
::SysFreeString(szUserType);
::SysFreeString(szPoint);
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
return S_OK;
}
STDMETHODIMP CClsAdoOperater::PKGetIDLenth(BSTR szMainID, VARIANT *pszLength)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
std::string m_strProcedureName = "tp_getidlength";
db::ParamStruct m_parameters[2];
int iParaCount = 2;
//组编号
SetParaContent(m_parameters[0],db::PT_IN,
_com_util::ConvertBSTRToString(szMainID),db::DT_INT,"");
//返回多少条数据
SetParaContent(m_parameters[1],db::PT_OUT,"",db::DT_INT,"");
// 2. 产生执行存储过程的sql语句
std::string sql = g_DbDriver->GenStoredProcedureSql(m_strProcedureName,iParaCount);
// 3. 编译sql
try
{
g_pStmt = g_pConn->PrepareCall(sql);
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// //g_dbStatProbe.SetOff(m_strDSN);
//
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(pszLength);
ccvar.Clear();
::SysFreeString(szMainID);
return S_FALSE;
}
// 4. 设置输入参数并注册输出参数
try
{
SetInputAndRegOuput(g_pStmt,m_parameters,iParaCount);
}
catch (const db::SqlException &e)
{
//置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(pszLength);
ccvar.Clear();
::SysFreeString(szMainID);
return S_FALSE;
}
// 5. execute
try
{
g_pStmt->Execute();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(pszLength);
ccvar.Clear();
::SysFreeString(szMainID);
return S_FALSE;
}
CComVariant ccvar;
// 6. 取输出参数
try
{
GetProcResult(g_pStmt,m_parameters,iParaCount);
ccvar = m_parameters[1].paramValue.c_str();
ccvar.Detach(pszLength);
ccvar.Clear();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "-1";
ccvar.Detach(pszLength);
ccvar.Clear();
::SysFreeString(szMainID);
return S_FALSE;
}
::SysFreeString(szMainID);
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
return S_OK;
}
STDMETHODIMP CClsAdoOperater::PKGetData(BSTR szMainID,BSTR szFromIndex,
BSTR szLength,VARIANT *pszFieldName,
VARIANT *pszFieldValue)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
std::string m_strProcedureName = "tp_getdata";
db::ParamStruct m_parameters[5];
int iParaCount = 5;
//组编号
SetParaContent(m_parameters[0],db::PT_IN,
_com_util::ConvertBSTRToString(szMainID),db::DT_INT,"");
//组内起始索引号
SetParaContent(m_parameters[1],db::PT_IN,
_com_util::ConvertBSTRToString(szFromIndex),db::DT_INT,"");
//长度len
SetParaContent(m_parameters[2],db::PT_IN,
_com_util::ConvertBSTRToString(szLength),db::DT_INT,"");
//字段名
SetParaContent(m_parameters[3],db::PT_OUT,"",db::DT_STRING,"");
//字段值
SetParaContent(m_parameters[4],db::PT_OUT,"",db::DT_STRING,"");
// 2. 产生执行存储过程的sql语句
std::string sql = g_DbDriver->GenStoredProcedureSql(m_strProcedureName,iParaCount);
// 3. 编译sql
try
{
g_pStmt = g_pConn->PrepareCall(sql);
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// //g_dbStatProbe.SetOff(m_strDSN);
//
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "";
ccvar.Detach(pszFieldName);
ccvar.Clear();
ccvar = "";
ccvar.Detach(pszFieldValue);
ccvar.Clear();
::SysFreeString(szMainID);
::SysFreeString(szFromIndex);
::SysFreeString(szLength);
return S_FALSE;
}
// 4. 设置输入参数并注册输出参数
try
{
SetInputAndRegOuput(g_pStmt,m_parameters,iParaCount);
}
catch (const db::SqlException &e)
{
//置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "";
ccvar.Detach(pszFieldName);
ccvar.Clear();
ccvar = "";
ccvar.Detach(pszFieldValue);
ccvar.Clear();
::SysFreeString(szMainID);
::SysFreeString(szFromIndex);
::SysFreeString(szLength);
return S_FALSE;
}
// 5. execute
try
{
g_pStmt->Execute();
}
catch (const db::SqlException &e)
{
// //置数据库状态为Off
// g_dbStatProbe.SetOff(m_strDSN);
//
//释放ICallableStatement
g_pStmt->Close();
//释放连接
g_pConn->Close();
CComVariant ccvar;
ccvar = "";
ccvar.Detach(pszFieldName);
ccvar.Clear();
ccvar = "";
ccvar.Detach(pszFieldValue);
ccvar.Clear();
::SysFreeString(szMainID);
::SysFreeString(szFromIndex);
::SysFreeString(szLength);
return S_FALSE;
}
CComVariant ccvar;
// 6. 取输出参数
try
{
GetProcResult(g_pStmt,m_parameters,iParaCount);
ccvar = m_parameters[3].paramValue.c_str();
ccvar.Detach(pszFieldName);
ccvar.Clear();
ccvar = m_parameters[4].paramValue.c_str();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -