2010-08-02 7 views
6

reçois la même erreur sur le code ci-dessous en utilisant soit des connexions de confiance ou SQL:SQL Server Management Objects

VS2010, Console app .NET4, Win XP. SQL2005 Full.

Bombes sur le transfer.TransferData

ERROR : errorCode=-1073548784 description=Executing the query "" failed with the following error: "Retrieving the COM class factory for component with CLSID {19E353EF-DAF4-45D8-9A04-FB7F7798DCA7} failed due to the following error: 80040154.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

cela se sent comme la sécurité. Toutes les pensées seraient géniales!

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.SqlServer.Management.Smo; 
using Microsoft.SqlServer.Management.Common; 
using System.Collections.Specialized; 
using System.IO; 
using System.Configuration; 


namespace GenerateScripts 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
       ServerConnection sourceConnection = new ServerConnection("localhost"); 
       Server sourceServer = new Server(sourceConnection); 
       //sourceServer.ConnectionContext.LoginSecure = false; 
       //sourceServer.ConnectionContext.Login = "3tier"; 
       //sourceServer.ConnectionContext.Password = "3tier"; 
       Database sourceDatabase = sourceServer.Databases["3tier"]; 


       // destination 
       ServerConnection destinationConnection = new ServerConnection("localhost"); 
       Server destinationServer = new Server(destinationConnection); 
       //destinationServer.ConnectionContext.LoginSecure = false; 
       //destinationServer.ConnectionContext.Login = "3tier2"; 
       //destinationServer.ConnectionContext.Password = "3tier2"; 
       Database destinationDatabase = destinationServer.Databases["3tier2"]; 

       Transfer transfer = new Transfer(sourceDatabase); 
       transfer.CopyAllObjects = false; 
       transfer.DropDestinationObjectsFirst = false; 
       transfer.UseDestinationTransaction = true; 

       transfer.CopyAllDefaults = true; 
       transfer.Options.Indexes = true; 
       transfer.Options.DriAll = true; 
       transfer.CopyAllDefaults = true; 

       transfer.Options.AnsiFile = true; 
       transfer.Options.SchemaQualify = true; 
       transfer.Options.WithDependencies = false; 
       transfer.CreateTargetDatabase = false; 
       transfer.CopySchema = true; 
       transfer.CopyData = true; 

       transfer.DestinationServer = "localhost"; 
       transfer.DestinationDatabase = "3tier2"; 
       transfer.DestinationLoginSecure = false; 
       transfer.DestinationLogin = "3tier2"; 
       transfer.DestinationPassword = "3tier2"; 

       transfer.Options.IncludeIfNotExists = true; 
       transfer.TransferData(); 

Répondre

2

Je ne sais pas si cela est le même cas, mais j'ai eu un problème similaire et il a été lié à corruption d'enregistrement de classe SQLTaskConnectionOleDb,

je l'ai résolu en exécutant

regsvr32 "%ProgramFiles%\Microsoft SQL Server\90\DTS\Binn\SQLTaskConnections.dll" 

dans l'invite de commande.

Questions connexes