Erstellen ein Pakets mit Visual C++

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

316717
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Dieser Artikel enthält ein Beispiel zum Erstellen eines Data Transformation Services (DTS)-Pakets mithilfe von Microsoft Visual C++. Dies ist nützlich, wenn Sie ein DTS-Paket programmgesteuert erstellen müssen.

back to the top

Beispiel für DTS-Visual C++-Programmierung

Im folgende programming DTS-Beispiel veranschaulicht, wie ein Paket erstellt, die eine Spalte Au_fname im Pubs übertragen werdenAutoren Tabelle von SQL Server 2000, um eine Flatfile.

Hinweis : Sie sicherstellen, dass den DTS-Paketname und den Dateinamen nicht vorhanden.
#include <iostream.h>#include <ole2.h>#include <conio.h>#include <io.h>#undef EOF// Provide the correct path for Dtspkg.dll.#import "C:\program files\Microsoft SQL Server\80\Tools\Binn\dtspkg.dll" no_namespaceint main(int argc, char* argv[]){	struct _finddata_t dir;	long hFile;	CoInitialize(NULL);	try	{	// Create Package Object 	_PackagePtr pkg(__uuidof(Package));	// Create Connection Source Object	ConnectionPtr connectionSource;	connectionSource = pkg->Connections->New("SQLOLEDB");	connectionSource->Name = "Pubs";	connectionSource->ID = 1;        // Replace the . with your server name.	connectionSource->DataSource = ".";        // Replace the pubs database name with yours.	connectionSource->Catalog ="pubs";	connectionSource->UseTrustedConnection = TRUE;	// Add Connection to Package	pkg->Connections->Add(connectionSource);	// Create the Connection Target Object	ConnectionPtr connectionTarget;	connectionTarget = pkg->Connections->New("DTSFlatFile");        // Add Properties connectionTarget->ConnectionProperties->Item("Mode")->PutValue(_variant_t((long)3));         connectionTarget->ConnectionProperties->Item("Row Delimiter")->PutValue("\r\n");        connectionTarget->ConnectionProperties->Item("File Format")->PutValue (_variant_t((long)1));        connectionTarget->ConnectionProperties->Item("Column Lengths")->PutValue (_variant_t((long)20));        connectionTarget->ConnectionProperties->Item("Column Delimiter")->PutValue(",");        connectionTarget->ConnectionProperties->Item("File Type")->PutValue (_variant_t((long)1));        connectionTarget->ConnectionProperties->Item("Skip Rows")->PutValue (_variant_t((long)0));        connectionTarget->ConnectionProperties->Item("Text Qualifier")->PutValue ("\"");        connectionTarget->ConnectionProperties->Item("First Row Column Name")->PutValue (VARIANT_TRUE);	connectionTarget->ConnectionProperties->Item("Column Names")->PutValue ("au_fname");        connectionTarget->ConnectionProperties->Item("Number of Column")->PutValue (_variant_t((long)1));        connectionTarget->ConnectionProperties->Item("Text Qualifier Col Mask: 0=no, 1=yes, e.g. 0101")->PutValue("1");        connectionTarget->ConnectionProperties->Item("Max characters per delimited column")->PutValue(_variant_t((long)255));        connectionTarget->ConnectionProperties->Item("Blob Col Mask: 0=no, 1=yes, e.g. 0101")->PutValue ("0");	connectionTarget->Name = "myTest";	connectionTarget->ID = 2;            // Replace a directory and file name in the following statements.   	connectionTarget->DataSource = "C:\\temp\\createDTS.txt";   		if ((hFile = _findfirst("C:\\temp\\*", &dir )) == -1L)    {		cout << "The directory is invalid!!!\n" << "Please verify the path.\n\n";		return 0;        }		connectionTarget->UseTrustedConnection = FALSE;	// Add the Connection Target to the Connection Source	pkg->Connections->Add(connectionTarget);	pkg->Name = "myDTSTest";	// Create the Step Object	StepPtr myStep;	myStep = pkg->Steps->New();	myStep->Name = "DTSStep_DTSDataPumpTask_1";	myStep->Description = "Copy Data to File";	myStep->TaskName = "DTSTask_DTSDataPumpTask_1";               // Add the Step Object to a package	pkg->Steps->Add(myStep);	// Create Task Object	TaskPtr myTask;	myTask = pkg->Tasks->New("DTSDataPumpTask");	myTask->Name = "DTSDataPumpTask";	myTask->Description = "Transform Data Task";		// Add Database query to the task	DataPumpTaskPtr myDataPumpTask;	myDataPumpTask = myTask->CustomTask;	myDataPumpTask->Name = "DTSTask_DTSDataPumpTask_1";	myDataPumpTask->Description = "Copy Data Pump Task";	myDataPumpTask->SourceConnectionID = 1;	myDataPumpTask->SourceSQLStatement = "select au_fname from pubs.dbo.authors";	myDataPumpTask->DestinationConnectionID = 2;	// Transformations - All the fields must be defined.	PropertiesPtr myProperty;	TransformationPtr myTrans;	myTrans = myDataPumpTask->Transformations->New("DTS.DataPumpTransformCopy");	myTrans->Name = "DTSTransformation__1";	ColumnPtr sourceColumn1, destinationColumn1;	sourceColumn1 = myTrans->SourceColumns->New("au_fname", 1);	destinationColumn1 = myTrans->DestinationColumns->New("au_fname",1);	myTrans->SourceColumns->Add(sourceColumn1);	myTrans->DestinationColumns->Add(destinationColumn1);	myProperty = myTrans->Properties;	myDataPumpTask->Transformations->Add(myTrans);		// Add the Task to the Package	pkg->Tasks->Add(myTask);	        // Execute the Package	pkg->Execute();	// Save the Package to SQL Server<BR/>        // Replace the . with your server name.	pkg->SaveToSQLServer(connectionSource->DataSource, "", "", DTSSQLStgFlag_UseTrustedConnection, "", "", "", NULL, TRUE);	}	catch (_com_error& e)      {            cout << "Source     : " << e.Source() << endl;            cout << "Error      : [" << e.Error() << "] " << endl;            cout << "Description:  " << e.Description() << endl ;      }	return 0;} 				
back to the top
Informationsquellen
Weitere Informationen zum Planen eines Pakets finden Sie die Artikel der Microsoft Knowledge Base:
316799Gewusst wie: Planen ein Pakets mit VC++ und Programmierung (Beispiel)
Sie können auch auf der SQL Server-Onlinedokumentation im Thema "Erstellen ein DTS-Pakets." verweisen

back to the top

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 316717 – Letzte Überarbeitung: 02/24/2014 06:10:48 – Revision: 3.6

  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-Bit Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • kbnosurvey kbarchive kbmt kbhowtomaster KB316717 KbMtde
Feedback