Tôi có gói DTS chạy trên máy chủ cơ sở dữ liệu MS SQL Server 2000 của chúng tôi và cần một cách để người dùng thực thi nó từ máy của riêng họ. (Gói này tạo các tệp mà sau đó được ứng dụng của tôi chuyển đến máy khách.) Tôi đã đưa vào tham chiếu COM "Microsoft DTSPackage Object Library" trong ứng dụng, nhưng vẫn nhận được lỗi "Chuỗi lớp không hợp lệ" khi bước đầu tiên của gói được thực hiện. Tôi cũng đã cố gắng đăng ký tất cả các DLL được chỉ định trong tập tin redist.txt của đĩa SQL Server 2000. Bất kỳ suy nghĩ hay lời đề nghị sẽ được đánh giá cao. Gói DTS rất đơn giản. Nó chỉ sao chép dữ liệu từ cơ sở dữ liệu SQL vào các bảng Visual FoxPro. Mã của tôi thực hiện gói dưới đây (phần lớn được lấy từ bài viết KB của Microsoft: http://support.microsoft.com/kb/321525)."Chuỗi lớp không hợp lệ" trong khi cố gắng thực thi Gói DTS trong VB .NET
Dim pkg As DTS.Package
pkg = New DTS.Package
Dim cpContainer As System.Runtime.InteropServices.ComTypes.IConnectionPointContainer
cpContainer = CType(pkg, System.Runtime.InteropServices.ComTypes.IConnectionPointContainer)
Dim cpPoint As System.Runtime.InteropServices.ComTypes.IConnectionPoint
Dim PES As PackageEventsSink = New PackageEventsSink
Dim guid As Guid = New Guid("10020605-EB1C-11CF-AE6E-00AA004A34D5")
cpPoint = Nothing
cpContainer.FindConnectionPoint(guid, cpPoint)
Dim intCookie As Integer
cpPoint.Advise(PES, intCookie)
pkg.LoadFromSQLServer(DTS_SERVER_NAME, , , DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, dtsPassword, , , dtsName, Nothing)
If pkg Is Nothing Then Throw New ApplicationException("The DTS Package could not be loaded from the SQL Server.")
Dim pkgStep As DTS.Step
For Each pkgStep In pkg.Steps
pkgStep.Execute()
Next
pkg.UnInitialize()
pkg = Nothing
cpPoint.Unadvise(intCookie)
cpPoint = Nothing
cpContainer = Nothing
PES = Nothing
Tôi đã cài đặt tất cả các công cụ máy khách nhưng vẫn gặp lỗi tương tự. Tôi đang sử dụng mã, trong quá khứ, đã làm việc trên các máy khách mà không cần bất kỳ yêu cầu đăng ký DLL nào. Khi tôi chạy ứng dụng trên một máy mà không có bất kỳ DTS DLL nào đã đăng ký, tôi nhận được một thông báo lỗi khác: Truy xuất nhà máy lớp COM cho thành phần với CLSID {10020200-EB1C-11CF-AE6E-00AA004A34D5} không thành công do lỗi sau: 80040154 Sau một số điều tra, có vẻ như bài viết KB này có thể cung cấp một giải pháp: http://support.microsoft.com/kb/326909. Tôi sẽ theo dõi sau khi tôi đã thử nó. Cảm ơn! –