Bonjour,
en travaillant les lots DTS SQLserver2000 via VB.net, j'ai cherché comment créer dynamiquement ma table qui changeait à chaque appel avant d'importer des données depuis un fichier texte/délimité.
Voila le bout de code qui en résulte. En espérant que ce sera utile à Qqun.
Source / Exemple :
Private Sub createTableFromFile()
Try
'le chemin vers mon fichier
Dim stFile as string = "D:\monFichier.txt"
Dim oSr As New StreamReader(stFile)
Dim stTitles As String = oSr.ReadLine
oSr.Close()
'je récupere la premiere ligne du fichier
Dim Titles() As String = Split(stTitles, ",")
'on supprime la table si nécessaire
Dim stQuery As String = "IF EXISTS(SELECT name FROM sysobjects WHERE name = 'MaTable' AND type = 'U')" & vbCrLf & "DROP TABLE MaTable"
Dim oCmdDrop As New SqlClient.SqlCommand
With oCmdDrop
.CommandText = stQuery
.Connection = Me.SqlConnection1
End With
Me.SqlConnection1.Open()
oCmdDrop.ExecuteNonQuery()
Me.SqlConnection1.Close()
'je cree la requete create table proprement dit
Dim i As Int16 = 0
stQuery = "CREATE TABLE MaTable ("
While i < Titles.Length
stQuery = stQuery & "[" & Titles(i) & "]" & " varchar(255)"
If i < Titles.Length - 1 Then stQuery = stQuery & "," & vbCrLf
i += 1
End While
stQuery = stQuery & ")"
Dim oCmd As New SqlClient.SqlCommand
With oCmd
.CommandText = stQuery
.Connection = Me.SqlConnection1
End With
Me.SqlConnection1.Open()
oCmd.ExecuteNonQuery()
Me.SqlConnection1.Close()
Catch ex As Exception
MessageBox.Show("error while creating MaTable " & vbCrLf & ex.GetType.ToString & vbCrLf & ex.Message)
End Try
End Sub
Conclusion :
ensuite je lance mon lot DTS (avec DTS.Package2).
Voila, sans prétention et à adapter, mais si ça peut rendre service ;-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.