Erstellen ein Pakets mit Visual C++

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 316717 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

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.

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_namespace
int 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;
} 
				

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

Eigenschaften

Artikel-ID: 316717 - Geändert am: Montag, 24. Februar 2014 - Version: 3.6
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-Bit Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
Keywords: 
kbnosurvey kbarchive kbmt kbhowtomaster KB316717 KbMtde
Maschinell übersetzter Artikel
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.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 316717
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com