klyh(风笛) 兄:
下面是我的一段代码,请过目:
bool Ydg_Create(const int nDay)
{
int i = 0 ; AnsiString sProcName = "DKH_SCGZ_PACK.DKH_SCGZ_YDG_P" ; //存储过程名
AnsiString sParam_1_Name = "v_pRq" , //输入参数
sParam_2_Name = "v_pErr" ; //输出参数 TScgz_Ydg_Dm *Ydg_db ;//TScgz_Ydg_Dm是我定义的一个数据模块 CoInitialize(0); //初始化COM环境 try
{
Ydg_db = new TScgz_Ydg_Dm(NULL) ;
}
catch(...)
{
MessageBox(Application->MainForm->Handle,
"【异动股】无法创建数据模块",
"错误",
MB_OK|MB_ICONSTOP
) ; CoUninitialize(); //卸载COM环境
return false ;
} try
{
Ydg_db->Dkh_ADOProc->ProcedureName = sProcName ; //过程名
Ydg_db->Dkh_ADOProc->Parameters->AddParameter() ;
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->Name = sParam_1_Name ; //参数名
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->DataType = ftDateTime ; //日期型
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->Direction = pdInput ; //输入参数
Ydg_db->Dkh_ADOProc->Parameters->AddParameter() ;
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->Name = sParam_2_Name ; //参数名
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->DataType = ftInteger ; //整型
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->Direction = pdOutput ; //输出参数 Ydg_db->Dkh_ADOProc->Parameters->ParamByName(sParam_1_Name)->Value = TDate(nDay) ;
Ydg_db->Dkh_ADOProc->Prepared = true ;
Ydg_db->Dkh_ADOProc->ExecProc() ;
i = (int)Ydg_db->Dkh_ADOProc->Parameters->ParamByName(sParam_2_Name)->Value ;
MessageBox(Application->MainForm->Handle,
(IntToStr(i)).c_str(),
"信息",
MB_OK) ;
}
catch(...)
{
MessageBox(Application->MainForm->Handle,
"【异动股】生成中间数据失败",
"错误",
MB_OK|MB_ICONSTOP
); delete Ydg_db ;
Ydg_db = NULL ; CoUninitialize();
return false ;
} CoUninitialize(); //卸载COM环境 delete Ydg_db ;
Ydg_db = NULL ; return true ;
}
下面是我的一段代码,请过目:
bool Ydg_Create(const int nDay)
{
int i = 0 ; AnsiString sProcName = "DKH_SCGZ_PACK.DKH_SCGZ_YDG_P" ; //存储过程名
AnsiString sParam_1_Name = "v_pRq" , //输入参数
sParam_2_Name = "v_pErr" ; //输出参数 TScgz_Ydg_Dm *Ydg_db ;//TScgz_Ydg_Dm是我定义的一个数据模块 CoInitialize(0); //初始化COM环境 try
{
Ydg_db = new TScgz_Ydg_Dm(NULL) ;
}
catch(...)
{
MessageBox(Application->MainForm->Handle,
"【异动股】无法创建数据模块",
"错误",
MB_OK|MB_ICONSTOP
) ; CoUninitialize(); //卸载COM环境
return false ;
} try
{
Ydg_db->Dkh_ADOProc->ProcedureName = sProcName ; //过程名
Ydg_db->Dkh_ADOProc->Parameters->AddParameter() ;
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->Name = sParam_1_Name ; //参数名
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->DataType = ftDateTime ; //日期型
Ydg_db->Dkh_ADOProc->Parameters->Items[0]->Direction = pdInput ; //输入参数
Ydg_db->Dkh_ADOProc->Parameters->AddParameter() ;
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->Name = sParam_2_Name ; //参数名
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->DataType = ftInteger ; //整型
Ydg_db->Dkh_ADOProc->Parameters->Items[1]->Direction = pdOutput ; //输出参数 Ydg_db->Dkh_ADOProc->Parameters->ParamByName(sParam_1_Name)->Value = TDate(nDay) ;
Ydg_db->Dkh_ADOProc->Prepared = true ;
Ydg_db->Dkh_ADOProc->ExecProc() ;
i = (int)Ydg_db->Dkh_ADOProc->Parameters->ParamByName(sParam_2_Name)->Value ;
MessageBox(Application->MainForm->Handle,
(IntToStr(i)).c_str(),
"信息",
MB_OK) ;
}
catch(...)
{
MessageBox(Application->MainForm->Handle,
"【异动股】生成中间数据失败",
"错误",
MB_OK|MB_ICONSTOP
); delete Ydg_db ;
Ydg_db = NULL ; CoUninitialize();
return false ;
} CoUninitialize(); //卸载COM环境 delete Ydg_db ;
Ydg_db = NULL ; return true ;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货