Possiedo un pacchetto DTS che viene eseguito sul nostro server di database MS SQL Server 2000 e richiede agli utenti un modo per eseguirlo dalle proprie macchine. (Il pacchetto crea i file che vengono poi trasferiti dalla mia applicazione al computer client.) Ho incluso il riferimento COM "Libreria oggetti Microsoft DTSPackage" nell'applicazione, ma ricevo comunque un errore "Stringa di classe non valida" quando il primo passo del il pacchetto è eseguito. Ho anche provato a registrare tutte le DLL specificate nel file redist.txt del disco di SQL Server 2000. Qualsiasi pensiero o suggerimento sarebbe molto apprezzato. Il pacchetto DTS è molto semplice. Copia solo i dati dal database SQL nelle tabelle Visual FoxPro. Il mio codice che esegue il pacchetto è riportato di seguito (in gran parte è tratto dall'articolo KB di Microsoft: http://support.microsoft.com/kb/321525)."Stringa di classe non valida" durante il tentativo di eseguire DTS Package in 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
Ho installato tutti gli strumenti client, ma ho ancora lo stesso errore. Sto usando un codice che, in passato, ha funzionato su macchine client senza requisiti di registrazione DLL. Quando eseguo l'app su una macchina senza alcuna delle DLL DTS registrate, viene visualizzato un altro messaggio di errore: Il recupero del factory di classe COM per componente con CLSID {10020200-EB1C-11CF-AE6E-00AA004A34D5} non è riuscito a causa del seguente errore: 80040154 Dopo alcune indagini, sembra che questo articolo della Knowledge Base possa fornire una soluzione: http://support.microsoft.com/kb/326909. Seguirò dopo averlo provato. Grazie! –