Utiliser une variable dans un « DataReader Source »
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
Code:
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'} |
La date doit apparemment absolument être formatée comme ça et pas autrement pour Progress accepte de la reconnaitre
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
Code:
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 |
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)
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