Bonjour, je crée un fichier .sql comme cela
Public Sub EcrireRequete(ByVal sSql As String, ByVal Reset As Boolean)
Directory.SetCurrentDirectory(Server.MapPath(""))
Dim maRequeteSQL As New FileInfo("data\marequete.sql")
If maRequeteSQL.Exists And Reset Then maRequeteSQL.Delete() End If
Dim LogStream As New StreamWriter("data\marequete.sql", True) LogStream.WriteLine(sSql) LogStream.Close()
End Sub
|
et je le lis comme ca :
Public Function LireRequete() As String
Try
Directory.SetCurrentDirectory(Server.MapPath(""))
Dim maRequeteSQL As New FileInfo("data\marequete.sql")
If Not maRequeteSQL.Exists Then Trace.Write("Le Fichier sql que je viens tt juste de faire à disparu ") Exit Function End If
Dim LogStream As New StreamReader("data\marequete.sql", True) LireRequete = LogStream.ReadToEnd LogStream.Close()
Catch ex As Exception
Trace.Warn("Erreur") End Try
End Function
|
ensuite je fais comme ca sous ma page pour ecrire le fichier :
'reset = true For Each InfoMP3 As Mp3Info In ListeInfoMP3
sSQL = "INSERT INTO Mp3 (" sSQL &= "Album," sSQL &= "Genre)"
sSQL &= " VALUES ("
sSQL &= "'" & InfoMP3.Album & "'," sSQL &= "'" & InfoMP3.Genre.ToString& "')" EcrireRequete(sSQL, Reset) Reset = False Next
' ..... ' .....
mcommand.CommandText = LireRequete()
Try mcommand.ExecuteNonQuery() Catch ex As Exception mConn.Dispose() End Try
mConn.Dispose()
|
Et ca marche pas, la requete Sql est bonne, si il n'y a qu'une seule ligne ca marche mais sinon ca marche pas, comment je dois faire.
Je suis obligé de faire un fichier sql car à l'initialisation de la base j'arrive à avoir qd 3000 mp3 et la requete SQL et beaucoup plus grande (16 champs) et je pense que ca doit faire lourd sur le serveur car une fois tt les mp3 passé (apres 20min) le fichier sql pese plusieurs centaines de ko
J'ai une autre solution, c'est d'executer chaque ligne une a une, mais ca doit surement etre plus long
Merci de m'aider