⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 execpkg.cpp

📁 Executing a DTS package is very simple, in its simplest form the execution contains for 3 steps. The
💻 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 + -