سؤال

لدي حزمة SSIS التي تقرأ ملف Excel (مصدر تدفق البيانات) ونقل البيانات إلى SQL Server باستخدام عنصر تدفق البيانات الوجهة OLEDB. يتم تنفيذ الحزمة بواسطة تطبيق .NET باستخدام نموذج كائن SSIS. الحزمة المخزنة في نظام الملفات داخل المجلد الفرعي التطبيق.

تعمل الحزمة بشكل جيد على جهاز التطوير / الاختبار الخاص بي كلاهما. تحتوي هذه الآلة على WIN2K3 32KBIT. تم بناء SSIS في بيئة 32 بتسية.

عندما أقوم بنشر هذا التطبيق على آلة الإنتاج التي تحتوي على إصدار WIN2K3 X64 القياسي، أحصل على الخطأ

حدث خطأ OLE DB. رمز الخطأ: 0x80040154. يتوفر سجل OLE DB. المصدر: "مكونات خدمة Microsoft OLE DB" HRESULT: 0x80040154 الوصف: "فئة غير مسجلة". استدعاء طريقة الاستمتاع بدعوة إلى "إدارة اتصال Excel" فشل مع رمز الخطأ 0xC0202009. مكون "Excel Source" (630) فشل التحقق من صحة ورمز الخطأ الذي تم إرجاعه 0xC020801C.

لقد قرأت في المشاركات الأخرى التي تحدد الخاصية Run64bitruntime للمشروع (أثناء وقت التصميم) يحل المشكلة عند تشغيلها من العطاءات.

كيف يمكنني تعيين هذه الخاصية من خلال نموذج كائن SSIS.

هنا هو جزء من التعليمات البرمجية التي تنفذ الحزمة

 _application = تطبيق جديد () _package = حزمة جديدة () _Package = _application.LoadPackage (packagename، لا شيء) _updateresult = _package.execute ()

شكرا

مسعود

هل كانت مفيدة؟

المحلول

ينطبق خاصية Run64bitruntime فقط على التعبئة التي تعمل داخل العطاءات. ليست هناك حاجة لتعيين هذه الخاصية عند الركض خارج العروض.

أعتقد أنك تصدرك هي أنه عند التشغيل في التعليمات البرمجية، يتم تنفيذ الحزمة في وضع 64 بت، ومع ذلك، فإن Excel لا يدعم هذا. من أجل جعل هذا العمل، ستحتاج إلى شل لإطلاق الإصدار 32 بت من DTEXEC.

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