Peut-être que ca marcherait mieux en n'utilisant pas de DataSet, mais en récupérant simplement le résultat de la requête avec un DataReader, et en générant le XML "manuellement". Qqch comme ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Dim cmd as SqlCommand
Dim dr as DataReader
cmd = sqlConnect.CreateCommand()
cmd.CommandText = "select * from clients"
dr = cmd.ExecuteReader()
Dim sw as StreamWriter
sw = New StreamWriter(FolderArchive & FileName & ".xml")
sw.WriteLine("<?xml version=""1.0"" encoding=""UTF-8""?>")
sw.WriteLine("<Clients>")
While dr.Read()
sw.WriteLine(" <Client>")
sw.WriteLine(" <Name>{0}</Name>", dr("name"))
' et ainsi de suite pour les autres champs
sw.WriteLine(" </Client>")
Wend
sw.WriteLine("</Clients>")
sw.Close()
dr.Close() |
Mais c'est pas sûr que ce soit plus efficace, je suppose que le composant DataSet est assez optimisé... de toutes façons si il y a beaucoup de données ce sera long quelle que soit la méthode.
Partager