数据库
关于调用DTS包的代码
失败,没什么整理代码
把调用DTS包的代码贴出来,也省得大家去查帮助了(需要更像喜请查看sql server帮助)
以下代码根据sql server中vb代码转化
#import "C:\\Program Files\\Microsoft SQL Server\\80\\tools\\binn\\dtspkg.dll" rename("EOF","IsEOF") rename("BOF","IsBOF")
void CChildView::OpenDtsFile(CString strPathName)
{
//企业管理器//数据转换服务//本地包//另存为DTS文件
DTS::_Package2Ptr m_pPackage2;
DTS::TaskPtr m_pTask;
DTS::StepPtr m_pStep;
DTS::ExecutePackageTaskPtr m_pExeTask;
try
{
m_pPackage2.CreateInstance(__uuidof(DTS::Package2));
m_pPackage2->FailOnError=true;
m_pStep=m_pPackage2->Steps->New();
m_pTask=m_pPackage2->Tasks->New(_bstr_t("DTSExecutePackageTask"));
m_pExeTask=m_pTask->CustomTask;
m_pExeTask->FileName=_bstr_t(strPathName);
m_pExeTask->Name=_bstr_t("ExePkgTask");
m_pStep->TaskName=m_pExeTask->Name;
m_pStep->Name=_bstr_t("ExePkgStep");
m_pStep->ExecuteInMainThread=true;
m_pPackage2->Steps->Add(m_pStep);
m_pPackage2->Tasks->Add(m_pTask);
m_pPackage2->Execute();
CString strMsg;
strMsg.Format("%s,数据转换%d个任务,%d个步骤成功",
strPathName,m_pPackage2->Tasks->Count,m_pPackage2->Steps->Count);
AfxMessageBox(strMsg);
m_pExeTask=NULL;
m_pTask.Release();
m_pTask=NULL;
m_pStep.Release();
m_pStep=NULL;
m_pPackage2.Release();
m_pPackage2=NULL;
}
catch(_com_error &e)
{
AfxMessageBox(_bstr_t(e.ErrorMessage())+_bstr_t(e.Description())); }
}
CSDN VC编程经验总结