2017-02-09 5 views
0

Nous faisons une mise à jour de technologie ici au travail. Déplacement vers le serveur SQL 2012. Déplacement des applications de .Net 2.0 vers .Net 4.5+ afin que nous puissions également exécuter les applications sur les systèmes d'exploitation les plus récents. Le problème est que le code de l'application a créé des paquets DTS à la volée, puis a exécuté des coureurs de tâches pour lire les fichiers téléchargés à partir desquels les paquets DTS ont été construits dans la base de données en exécutant les paquets. L'ancien code utilisait une bibliothèque DTS pour créer des packages DTS. Bien sûr, ce code n'est plus disponible.Comment faire pour supprimer la dépendance sur les bibliothèques DTS .net 2.0 qui génère dynamiquement des packages DTS. Comment utiliser SSIS équivalent à partir de C# .Net 4.6?

Je n'essaie pas de convertir les packages DTS. J'essaye de ne pas les construire en premier lieu. Je pourrais utiliser SSIS à la place, mais je ne suis pas sûr que ce soit la façon dont SSIS est utilisé. Quelqu'un peut-il me dire comment s'y prendre en utilisant SSIS.

Merci pour votre temps!

+0

Comprenez-vous ce que fait le composant DTS? Je soupçonne qu'il importe simplement des fichiers. Si tel est le cas, la création et l'exécution de fichiers DTS à la volée sont complètement exagérées (la création de paquets SSIS à la volée serait également exagérée). Si cette étape consiste simplement à importer des données, vous pouvez facilement l'obtenir directement dans .Net. Si vous devez créer des pacakges SSIS, vous pouvez utiliser BIML pour les générer automatiquement en fonction des métadonnées, mais dans 15 ans ce sera également obsolète! –

+0

LOL, d'accord Nick, le gars ci-dessous suggère aussi BIML (je n'en ai jamais entendu parler), je vais jeter un oeil à ça ... Et aussi, votre soupçon, je suis sûr, est correct, il importe simplement des données dans c'est la base de données à travers les fichiers téléchargés. C'est ce que je peux voir clairement ... Mon intention actuelle est de simplement écrire mes propres routines d'importation pour importer les mêmes fichiers qui sont en train d'être téléchargés sans passer par l'utilisation d'un paquet. Je pense que c'est tout ce qui est vraiment nécessaire. Bien que je regarderai BIML pour voir si cela peut avoir du sens dans ce cas ... –

Répondre

1

Eh bien, vous avez peu de changements si vous n'avez pas de code source pour les programmes générant des paquets SSIS.
Le problème principal ici est que le programme générera des paquets pour l'ancienne version de SSIS; il couvre le format de fichier DTSX et les noms de composants. Les noms des composants sont des noms de tâches SSIS et d'éléments de flux de données et c'est de cette manière que SSIS sait quelle tâche exécuter ensuite. Mauvaise chose que la plupart de ces noms de composants sont modifiés dans les prochaines versions de SSIS; de plus, certains composants ont changé leurs noms de paramètres.
Si vous laissez votre programme générateur DTS intact, vous recevrez toujours des paquets pour la version obsolète de SSIS. Des paquets simples pourraient être transformés et mis à jour par SSIS à la volée, mais des paquets plus complexes devraient subir une mise à jour manuelle.
Dans votre cas, il y a plusieurs possibilités:

  • Recherchez le code source et le modifier pour générer des paquets corrects.
  • Générez des packages, enregistrez, puis - mettez à niveau avec l'assistant de mise à niveau de SSIS ou de Visual Studio. Ensuite, vous devez gérer les packages manuellement dans VS et les exécuter par l'Agent SQL Server ou les fichiers batch.
  • Familiarisez-vous avec BIML pour générer dynamiquement des packages basés sur des métadonnées. C'est beaucoup plus simple que l'approche C#.

Personnellement, j'opterais pour la troisième option.

+0

Oui bien en effet je ne veux pas transformer un processus automatisé en un processus qui doit convertir manuellement les paquets DTS en paquets SSIS. En effet, tout ce qui se passe vraiment ici, c'est que les fichiers sont téléchargés et doivent être importés dans une base de données. Je vais regarder BIML pour voir si cela a du sens ici mais maintenant je pense que je peux juste écrire une facilité d'importation en C# qui s'occupera de ça. Merci pour votre participation! –