سؤال

أنا أستخدم طريقة النقل من فئة النقل في SQL Server SMO. لدي مكالمة تعمل على نظام التشغيل Windows XP، تشغيل SQL Server 2008 SP1، في محاولة لنقل جدول من SQL Server 2000 على خادم آخر إلى جهاز XP. كلاهما يستخدم نفس اسم مستخدم SQL وكلمة المرور. لقد اختبرت باستخدام معالج الاستيراد / التصدير وجرى غرامة.

الاستثناء أدناه وكان سجل الأحداث لديه خطأ "حزمة" SHELLPACKAGE "فشل".

يعرض خطأ الاستثناء خاصية الاستعلام فارغة ولا استبدال. أنا أفترض أن بعض قطعة DTS فشلت لكنني لست متأكدا من ولماذا.

استثناء: "خطأ: ErrorCode = -1073548784 الوصف = فشل تنفيذ الاستعلام " "مع الخطأ التالي: " "النوع" ل "" ألقى استثناء. ". أسباب الفشل المحتملة: مشاكل في الاستعلام، " نتائج "خاصية غير محددة بشكل صحيح، لا يتم تعيين المعلمات بشكل صحيح، أو اتصال غير محدد بشكل صحيح. r n helpfile = helpcontext = 0 idofinterfacewitherror = {c81dfc5a-3b22-4da3-bd3b-10bf861a7f9c}"

رمز بلدي:

try
            {
                string MasterUser = ConfigurationSettings.AppSettings["SQLUserName"];
                string MasterPassword = ConfigurationSettings.AppSettings["SQLPassword"];


                Server server = new Server(SourceServer);
                server.ConnectionContext.LoginSecure = false;
                server.ConnectionContext.Login = MasterUser;
                server.ConnectionContext.Password = MasterPassword;

                Database databaseSource = server.Databases[SourceDatabaseName];


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

                if (IsBasic)
                {
                    transfer.CopyAllDefaults = false;
                    transfer.Options.Indexes = false;
                    transfer.Options.DriAll = false;
                    transfer.CopyAllDefaults = false;
                }
                else
                {
                    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;

                if (CopyData)
                    transfer.CopyData = true;
                else
                    transfer.CopyData = false;

                transfer.DestinationServer = DestinationServer;
                transfer.DestinationDatabase = DestinationDatabaseName;
                transfer.DestinationLoginSecure = false;
                transfer.DestinationLogin = MasterUser;
                transfer.DestinationPassword = MasterPassword;


                //find the able object
                foreach (Table table in databaseSource.Tables)
                {
                    if (table.Name == TableName)
                    {
                        tableToTransfer = table;
                        break;
                    }
                }

                transfer.Options.IncludeIfNotExists = true;
                transfer.ObjectList.Add(tableToTransfer);
                transfer.TransferData();
            }
            catch (DbException dbExp)
            {
                throw new FaultException(dbExp.Message);
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
هل كانت مفيدة؟

المحلول

تتضيف الخدمة التي تستضيف خدمة WCF (التعليمات البرمجية أعلاه) إلى مستخدم مجال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top