Bonjour,
J'ai une DB Progress (de production) et une DB SQL (qui sert à faire le Business intelligence)
J'ai un DTSX qui fait passer des données depuis Progress vers SQL (fait avec Visual Studio 2005 au cas où ça aurait une importance pour la suite)
Pour récupérer les données en Progress, je passe par un « DataReader Source » avec un code SQL du genre
La date doit apparemment absolument être formatée comme ça et pas autrement pour Progress accepte de la reconnaitre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT Champs 1, Champs 2, Champs 3, Champs 4, Champs 5 FROM table WHERE Champs1 = {d'2012-08-28'}
Du coup, il faut éditer manuellement la date tous les jours et je trouve ça absurde.
Quand j’ai eu la formation en Visual Studio, le formateur m’a montré comment faire une variable dans un « Script Task » et je sais la formater facilement selon mes besoins
J’ai aussi appris comment utiliser une variable comme critère SQL dans un « OLE DB Source » (je fais mon code, je mets = ? dans le where, je clique sur paramètre et je prends ma variable utilisateur nommée jour)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Public Class ScriptMain Public Sub Main() Dim a As Date Dim r As String a = Date.Now a = a.AddDays(-1) r = Format(a, "yyyy-MM-dd") r = "{d'" & r & "'}" Dts.Variables("jour").Value = r Dts.TaskResult = Dts.Results.Success End Sub End Class
Pour ne plus avoir besoin de modifier la date manuellement, j’ai besoin soit
- De trouver comment utiliser ma variable dans un « DataReader Source » (je peux y mettre du code SQL, mais je ne trouve pas comment y définir un paramètre)
- De trouver comment aller récupérer mes données Progress avec un « OLE DB Source » (je n’y arrive pas parce que la connexion manager dont j’ai besoin apparait dans le menu déroulant des « DataReader Source » mais pas dans celui des « OLE DB Source »)
Est-ce que quelqu’un ici connait la solution à un des deux problèmes ?
Il est possible que je me sois mal exprimée, je m’y connais hélas trop peu pour utiliser la bonne terminologie. Si quelque chose n’est pas clair, n’hésitez pas à me demander de préciser
Merci d’avance
Emmanuelle
Partager