Bonjour la communauté,
Je suis newbie dans le BI et SSIS et bien sûr je commence à me confronter à une succession de problemes et d'interrogations. Je me retourne donc vers vous pour trouver un peu d'aide.
J'utilise un "DataFlow" pour alimenter ma table de faits à partir de mes différentes dimensions.
Dans ce "DataFlow" je souhaite à un moment donné executer une procédure stockée afin d'aller chercher une donnée qui ne se trouve pas dans mon "OLE DB Source".
J'essaie actuellement d'utiliser le composant "Script Component" pour executer cette action
Voici mon code:
Ma première interrogation:
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Imports System Imports System.Data Imports System.Data.SqlClient Imports System.Math Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Imports Microsoft.SqlServer.Dts.Runtime Public Class ScriptMain Inherits UserComponent Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) Dim sqlConn As OleDb.OleDbConnection Dim sqlCmd As OleDb.OleDbCommand Dim sqlParameter As OleDb.OleDbParameter sqlConn = New OleDb.OleDbConnection(Me.Connections.ConnectionFact.ConnectionString) sqlCmd = New OleDb.OleDbCommand("EXEC pr_getSumEvent " & Row.ProductProductionKey, sqlConn) sqlCmd.CommandType = CommandType.StoredProcedure sqlConn.Open() Dim sumEvent As Int32 Dim reader As OleDb.OleDbDataReader sumEvent = Convert.ToInt32(sqlCmd.ExecuteScalar()) reader.Close() sqlConn.Close() End Sub End Class
Dans le "DataFlow" la méthode "Input0_ProcessInputRow" est appelée pour chaque ligne de mon "Ole DB Source" ? Et "Row" me permet de récupérer les valeurs de chaque ligne ? N'est-ce pas ?
Premier problème
Lorsque j'execute mon package j'ai l'erreur suivante:
"Syntax error, permission denied or other nonspecific error"
J'ai l'impression que mon "CommandText" n'est pas bon ?
Ma deuxième interrogation:
Je pense ensuite utiliser mon variable "sumEvent" (résultat de la procédure stockée) pour la stocker dans une variable du package, et ensuite utiliser le composant "Derived Column" pour créer une nouvelle colonne à mon "OLE DB Source" avec cette valeur.
Est-ce une bonne idée ?
Est-il possible de récupérer une variable du package dans le composant "Script Component" ?
Merci par avance de votre aide.
Pierrick
Partager