📄 execpkg.cpp
字号:
// ***************************************************************************
// Copyright (C) 1991-2001 SQLDev.Net
//
// $BeginHeader$
//
// @filename@: ExecPkg.cpp
// @author@: GertD@SQLDev.Net
// @description@: Shows basic package execution and result checking
// @remarks@: part of "Programming SQL Server DTS", by Gert E.R. Drapers
// @created@: 2001-10-01 17:00:00
// @lastsaved@: 2001-10-01 19:25:00
//
// update history:
// @version@ @initials@ @updatedate@ @description@
// 000000001 GD 2001-10-01 created
//
// $EndHeader$
// ***************************************************************************
#include "ExecPkg.h"
INT _tmain(INT argc, TCHAR* argv[], TCHAR* envp)
{
HRESULT hr;
if SUCCEEDED(hr = OleInitialize(NULL) )
{
try
{
HRESULT hr;
_Package2Ptr spPackage;
if (SUCCEEDED(spPackage.CreateInstance(__uuidof(Package2))))
{
try
{
_variant_t v; // VarPersistStgOfHost
hr = spPackage->LoadFromSQLServer(
_T("(local)\\dev"), // _bstr_t ServerName
_T(""), // _bstr_t ServerUserName
_T(""), // _bstr_t ServerPassword
DTSSQLStgFlag_UseTrustedConnection,
_T(""), // _bstr_t PackagePassword
_T(""), // _bstr_t PackageGuid
_T(""), // _bstr_t PackageVersionGuid
// _T("Hello DTS"), // _bstr_t PackageName
_T("PackageExecutionNoProgress"),
&v); // VARIANT* pVarPersistStgOfHost
hr = spPackage->Execute();
// get results per step
//
DisplayStepResults(spPackage);
hr = spPackage->UnInitialize();
}
catch(_com_error pCE)
{
DisplayError(pCE);
spPackage.Release(); // Free the interface
}
}
}
catch(_com_error pCE)
{
DisplayError(pCE);
}
OleUninitialize();
}
else
{
_tprintf(_T("Call to CoInitialize failed.\n"));
}
return (0);
}
// **********************************************************************
// display error information
// **********************************************************************
void DisplayError(_com_error & pCE)
{
_tprintf(_T("\n%s Error: %ld\r\n")
_T("%s\r\n")
_T("%s\r\n"),
(TCHAR*)pCE.Source(),
pCE.Error(),
(TCHAR*)pCE.Description(),
(TCHAR*)pCE.ErrorMessage());
}
// **********************************************************************
// display result of each Step
// **********************************************************************
void DisplayStepResults(_Package2Ptr spPackage)
{
try
{
HRESULT hr;
StepsPtr steps = spPackage->GetSteps();
for (long i = 1; i <= steps->GetCount(); i++)
{
StepPtr step = steps->Item(i);
if (hr = step->GetExecutionStatus() == DTSStepExecStat_Completed)
{
if (hr = step->GetExecutionResult() == DTSStepExecResult_Failure)
{
long lErrorCode;
BSTR bstrSource;
BSTR bstrDescription;
BSTR bstrHelpFile;
long lHelpContext;
BSTR bstrIDofInterfaceWithError;
hr = step->GetExecutionErrorInfo(
&lErrorCode,
&bstrSource,
&bstrDescription,
&bstrHelpFile,
&lHelpContext,
&bstrIDofInterfaceWithError);
_tprintf(_T("step %s failed\n"),
(TCHAR*)step->Name );
_tprintf(_T("error %d %s %s\n"),
lErrorCode,
(TCHAR*)bstrSource,
(TCHAR*)bstrDescription);
}
else
{
_tprintf(_T("step %s succeeded\n"),
(TCHAR*)step->Name );
}
}
}
}
catch(_com_error pCE)
{
DisplayError(pCE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -