Avatar billede mikkelsen1980 Nybegynder
29. juni 2005 - 08:25 Der er 7 kommentarer og
1 løsning

En DTS pakke til flere databaser?

Har pt. en DTS pakke pr. land, men det er besværligt at vedligeholde. Så kunne være lækkert, hvis jeg bare kunne lave en DTS pakke - og på en måde sende med hvilken database der skulle vælges, samt hvor den skal hente filæerne.

Kan man bygge DTS pakkerne op sådan?:

SQL Server:

db_test
db_land1
db_land2
db_land3


Filer:

D:\test\fil.txt
D:\land1\fil.txt
D:\land2\fil.txt
D:\land3\fil.txt

DTS:
Variable land f.eks. sat = "land1"

Indlæs D:\ + land + \fil.txt til db_ + land + ..tabel
Avatar billede ldanielsen Nybegynder
29. juni 2005 - 10:10 #1
Lav en Connection af typen Text File (Source). Giv den navnet TextFileSource. Peg på en fil som Source. Den skal jo skiftes ud, men for at få sat parametrene skal du pege på en fil der har det rigtige format. Angiv deliter osv. som sædvanligt.

Lav en Global Variable, type: String, navn: FileName

Lav følgende script i en ActiveX task

Function Main()

    Dim strFileName, objPackage

    strFileName = DTSGlobalVariables("FileName").Value & ".txt"

    Set objPackage = DTSGlobalVariables.parent
    objPackage.Connections("TextFileSource").datasource = strFileName

    Main = DTSTaskExecResult_Success

End Function



Nu mangler du bare at få den rigtige streng ind i variablen.
Avatar billede mikkelsen1980 Nybegynder
29. juni 2005 - 10:33 #2
Jeg har selv fået lavet det vha. Dynamic properties. Men det er vel i praksis det samme der sker.

Her vælger jeg også databasen og tabellen til indlæsning. Det virker fint. Kunne dog godt lige bruge, at jeg kunne tilgå en global variable i en query i dts pakken, men har pt løst det ved at selecte fra en tabel.

Men smid et svar alligevel! Tak for indsatsen.
Avatar billede ldanielsen Nybegynder
30. juni 2005 - 08:51 #3
Hvis du har en Execute SQL Task, så skriv fx:

SELECT * FROM Kunde WHERE strFornavn = ? ORDER BY strFornavn

Klik så på Parameters. Nu får du mulighed for at sige at første parameter (dvs første spørgsmålstegn) skal tilknyttes en global variabel.
Avatar billede mikkelsen1980 Nybegynder
30. juni 2005 - 11:00 #4
Tak for hjælpen det prøver jeg lige. Havde dog håbet at jeg kunne tilgå dem lidt som i Activex: TSGlobalVariables("country").value

Så vidt jeg kan se, kan jeg ikke bruge parametre i query under dynamic properties. Men kan bruge det andre steder.
Avatar billede mikkelsen1980 Nybegynder
30. juni 2005 - 11:02 #5
Hmmm, sker ikke noget når jeg trykker acceptere...
Avatar billede ldanielsen Nybegynder
30. juni 2005 - 12:18 #6
Du skal klikke på mit navn først, det er en <select> ...

Jeg må tilstå at jeg ikke lige ved hvad Dynamic Properties er! Eller sover jeg?
Avatar billede ldanielsen Nybegynder
30. juni 2005 - 12:20 #7
Nåh jo, nu husker jeg det. Det kan naturligvis løse problemet, min løsning er via ActiveX, men Dynamic properties er mindst lige så smart
Avatar billede mikkelsen1980 Nybegynder
30. juni 2005 - 12:39 #8
Ah, havde ikke lige set det var en select, når der kun stod et navn :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester