分类: C/C++
2008-05-27 20:57:58
数据库 关于调用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())); } }
|