L'exportation de données à partir de plusieurs tables SQL pour différents fichiers à plat à l'aide de SSIS Tâche de Script
Je suis en train de créer une grille de données et exporter le contenu d'un fichier texte à l'aide VB.NET et je fais cela à l'intérieur d'un package SSIS tâche de script afin d'automatiser le processus d'exportation d'un tableau dynamique dans un fichier texte. Je n'obtiens aucune erreur et les fichiers sont créés, mais les fichiers sont vides.
Ce que je fais mal ici, dans ce code?
Public Sub Main()
Dim FName As String = "D:\test.TXT"
''''''''''''''''''''''''''''''''''''''''''
If File.Exists(FName) Then
File.Delete(FName)
End If
''''''''''''''''''''''''''''''''''''''''''
Dim myConnection As OleDbConnection = New OleDbConnection("Data Source=localhost;Provider=SQLNCLI10;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=SSPI;")
Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select * from Table")
Dim ds As DataSet = New DataSet
da.Fill(ds, "Test")
Dim DataGrid1 As New DataGrid
DataGrid1.DataSource = ds.DefaultViewManager
Dim DataGridView1 As New DataGridView
DataGridView1.DataSource = ds
Dim dgvc As DataGridViewCell
Dim sw As New System.IO.StreamWriter(FName)
For Each dgvr As DataGridViewRow In DataGridView1.Rows
Dim intCellCount As Integer = dgvr.Cells.Count
Dim intCounter As Integer = 1
For Each dgvc In dgvr.Cells()
If intCounter <> intCellCount Then
sw.Write(dgvc.Value.ToString & "|")
Else
sw.WriteLine(dgvc.Value.ToString)
End If
intCounter += 1
Next
Next
Dts.TaskResult = ScriptResults.Success
End Sub
OriginalL'auteur JYousef | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Ici est un moyen possible d'exporter les tables de structure différente à dossier plat en utilisant
Script Task
. Cet exemple permet d'exporter des deux tables contenant les différents champs et les données dans un fichier plat, à l'aide de Script. Pour exporter les données, vous pouvez utiliser leDataReader
au lieu d'utiliser leDataGrid
. Il pourrait y avoir d'autres façons de procéder.Étape-par-étape du processus:
dbo.TablesList
,dbo.Source1
etdbo.Source2
en utilisant des scripts donné en vertu de l' Scripts SQL section.dbo.TablesList
,dbo.Source1
et `dbo.Source2` avec des données indiqué dans la capture d'écran #1.Connection manager
, créer unOLE DB connection
nommé SQLServer pour se connecter à l'instance de SQL Server comme indiqué dans la capture d'écran #2.Execute SQL Task
, unForeach Loop Container
et unScript Task
dans leForeach loop container
comme indiqué dans la capture d'écran #4.Execute SQL task
comme indiqué dans les captures d'écran #5 et #6.Foreach Loop container
comme indiqué dans les captures d'écran #7 et #8.Script Task Code
.Espère que ça aide.
Scripts SQL:
Script Code de la Tâche: (Utiliser le code donné ci-dessous pour remplacer la méthode main() dans votre tâche de Script)
VB méthode main() de code qui peut être utilisé dans
SSIS 2005 and above
:Capture d'écran #1:
Capture d'écran #2:
Capture d'écran #3:
Capture d'écran #4:
Capture d'écran #5:
Capture d'écran #6:
Capture d'écran #7:
Capture d'écran n ° 8:
Capture d'écran n ° 9:
Capture d'écran n ° 10:
Capture d'écran #11:
Capture d'écran n ° 12:
Grand, oui fonctionne très bien, le code est tout ce que je cherchais, merci beaucoup....dieu vous bénisse pour le partage de la connaissance
Merci de siva, Par la façon dont je jouais auparavant avec le DataReader, mais ne pouvaient pas faire la contre-partie, également avec la GRILLE que j'espérais obtenir les noms des colonnes, c'est pourquoi j'ai été l'essayer.
Je ne pouvais pas trouver les captures d'écran dans votre réponse. Veuillez fournir le même bientôt.
Pourtant, je ne pouvais pas en mesure de voir toute capture d'écran même j'ai essayé sous IE 9.0, Firefox 11.0, Google Chrome et les navigateurs.
OriginalL'auteur
Pourquoi n'utilisez-vous pas un OLEDB composant source, de mettre votre requête création de table et puis il y en sortie dans un fichier plat, écrivain dans SSIS au lieu d'utiliser un composant de script? Ce blog montre comment faire cela.
OriginalL'auteur Tom Pickles