Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18671465
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 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())); }
}

 

阅读(413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~