Bonjour,

Je souhaite effectuer le transfert de données d'une base MSDE vers une server MSSQL. Après avoir développé une DLL qui effectuait une "copie" des données (requête SELECT sur la base MSDE, requête INSERT sur la base MSSQL), j'ai constaté de gros problème de performance (j'ai plusieurs miliers de lignes à transférer).
En creusant un peu (je suis loin d'être un expert MSSQL), j'ai trouvé le module DTS qui pourrait répondre à mon besoin. J'ai créé un package DTS qui utilise 2 connections (source et destination) et effectue un import des tables (une tâche par table à transférer) en utilisant une requête SQL pour la source des données. J'utilise des variables globales pour filter mes données à transférer.

J'essai maintenant de développer une libraire en .NET qui utilise ce package sous forme de fichier .dts. A partir de VisualStudio 2003, je réfèrence les DLLs suivantes:
  • dtspkg.dll
    dtspump.dll
    custtask.dll

J'arrive à ouvrir le fichier .dts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Package2Class pkg = new Package2Class();
Object pVarPersistStgOfHost = null;
pkg.LoadFromStorageFile(
          @"CopyData.dts",
          null,
          null,
          null,
          "CopyData",
          ref pVarPersistStgOfHost);
mais lorsque je tente d'obtenir une réfèrence sur une tâche de transfert
Code : Sélectionner tout - Visualiser dans une fenêtre à part
pkg.Tasks.Item("DTSTask_DTSDataPumpTask_1").CustomTask
j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Échec de QueryInterface pour l'interface DTS.CustomTask.
Quelqu'un a-t-il une idée?