2010-08-02 10 views
6

sto ottenendo lo stesso errore sul codice qui sotto usando sia gli account di accesso di fiducia o SQL:SQL Server Management Objects

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

bombe sulla 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.

questo si sente come la sicurezza. Ogni pensiero sarebbe fantastico!

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(); 

risposta

2

Non so se questo è lo stesso caso, ma ho avuto un problema simile e si è connessi a SQLTaskConnectionOleDb classe corruzione di registrazione,

ho risolto eseguendo

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

nel prompt dei comandi.

Problemi correlati