In questi giorni, appena tornato da una settimana di pacchia, ho dovuto subito affrontare un quesito particolare. Ovvero, quello di riuscire a far eseguire una vecchia tecnologia da una nuova. In questo caso la vecchia tecnologia sono le DTS (Data trasformation ...) di SQL 2000 e la nuova il NET 2.
Per prima cosa, dobbiamo dire che per poter eseguire una DTS da NET Framework 2 dobbiamo utilizzare la vecchia tecnologia COM. Per fare cio' dobbiamo recuperare dal Server che espone SQL 2000 la dll dtspkg.dll. Essendo questa una dll in vecchio stile, non sarà sufficiente aggiungerla nelle referenze del nostro progetto. Dobbiamo prima creare un runtine callable wrapper ovvero una sorta di ponte che comunicherà tra la dll e il nostro programma NET.
Trasformazione della .dll
In questa fase dobbiamo eseguire 3 semplici passaggi.
Per prima cosa dobbiamo creare un Strong Name per il nostro futuro Assembly. Questa caratteristica è richiesta dalla GAC. Quindi da riga di comando digitiamo:
sn.exe -k C:\DTS.KEY
Nota: nel mio esempio tutti i file per comodità sono stati posti nella cartella C:
Adesso dobbiamo trasformare la nostra .dll in un assembly, o meglio, dobbiamo creare un assembly in grado di comunicare con la .dll. Per fare cio' utilizziamo l' utility tlbimp di NET .
tlbimp.exe C:\dtspkg.dll /out:C:\Microsoft.SQLServer.DTSPkg80.dll /keyfile:C:\DTS.KEY
Adesso abbiamo il nostro assembly pronto per essere installato nella GAC. Come? Ma semplicemente con la GAC utility ...
gacutil.exe -i C:\Microsft.SQLServer.DTSPkg80.dll
Adesso possiamo inserire una reference nel nostro progetto a questo assembly e utilizzarlo per poter interagire con gli oggetti e i package di SQL 2000.
Nella prossima puntata vediamo come usare questa dll per interagire con SQL 2000.