anissa a écrit :Code : Tout sélectionner
For Wrow=0 to CountGadgetItems(#Grid)-1
For Wcol= 0 to 3
Wdata$(Wcol)=GetGadetItemText(#Grid,Wrow,Wcol)
Next Wcol
Wsql = "Insert Into MaTable (Col0,Col1,Col2,Col3) Values ("
Wsql + Chr(34) + Wdata$(0) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(1) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(2) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(3) + Chr(34) + ")"
CheckDataBaseUpdate(MaBase,Wsql)
Next Wrow
bah tout simplement en reprenant chaque requête que tu construits dans ton code ci-dessus
Là j'ai grillé l'alim de mon pc, et je suis saoul, donc je te répond sans avoir passer le code par purebasic -_-
Code : Tout sélectionner
grosse_requete.s = ""
For Wrow = 0 to CountGadgetItems(#Grid) - 1
For Wcol= 0 to 3
Wdata$(Wcol) = GetGadetItemText(#Grid, Wrow, Wcol)
Next Wcol
Wsql.s = "Insert Into MaTable (Col0,Col1,Col2,Col3) Values ("
Wsql + Chr(34) + Wdata$(0) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(1) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(2) + Chr(34) + ","
Wsql + Chr(34) + Wdata$(3) + Chr(34) + ")"
grosse_requete = grosse_requete + Wsql + ";"
Next Wrow
; on enlève le dernier ';' je sais pas si c'est utile ...
grosse_requete = left(grosse_requete, len(grosse_requete) - 1)
CheckDataBaseUpdate(MaBase, grosse_requete)
Du coup, comme tu as sortie la requète SQL de la boucle, et que tu la fait qu'une seule fois, ca va aller bcp plus vite je pense !
C'est la requète sql qui prend du temps, pas le reste, donc le but est toujours de mettre ce qui prend le plus de temps en dehors des boucles