2010-08-02 5 views
6

암이 신뢰 또는 SQL 로그인을 사용하여 아래의 코드에서 같은 오류가 개체 :SQL 서버 관리

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

폭탄이 보안 같은 느낌 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.

에. 어떤 생각이 굉장 할 것입니다!

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

답변

2
이 같은 경우이다 그러나 나는 비슷한 문제를 가지고 있었고, 그것이 SQLTaskConnectionOleDb 클래스 등록 부패와 관련된 경우 나도 몰라

,

내가

을 실행하여 그것을 해결했습니다

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

명령 프롬프트