Объекты управления SQL Server - PullRequest
6 голосов
/ 02 августа 2010

Я получаю ту же ошибку в приведенном ниже коде, используя доверенные имена или имена входа SQL:

VS2010, Консольное приложение .NET4, Win XP. SQL2005 Full.

Бомбы на передачу. Передача данных

ОШИБКА: errorCode = -1073548784 description = Выполнение запроса "" не удалось выполнить следующую ошибку: «Получение фабрики класса COM для компонент с CLSID {19E353EF-DAF4-45D8-9A04-FB7F7798DCA7} не выполнен из-за к следующей ошибке: 80040154. ". Возможные причины сбоя: Проблемы в запросе свойство ResultSet установлено неправильно, параметры не заданы установлен правильно, или соединение установлено неправильно.

это похоже на безопасность. Любые мысли были бы потрясающими!

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

1 Ответ

2 голосов
/ 01 марта 2011

Я не знаю, если это тот же случай, но у меня была похожая проблема, и это было связано с SQLTaskConnectionOleDb повреждение регистрации класса,

Я решил это, запустив

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

в командной строке.

...