Delphi 7 - Windows XP -SP2 - Base de données MS Accèes 2003
Dans mon dernier programme j'ai constaté une extrême lenteur au passage du code suivant :
En fait la lenteur apparaît exactement à la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for i := 1 to (lines - 1)do begin // ..... pas mal de code ....... AdoQuery1.SQL.Add('UPDATE DOSSIER SET PROVENANCE_PERFEO=' + '''' + PROVENANCE_PERFEO + '''' + 'WHERE ID_ORDER =' + '''' + ID_ORDER + '''' + ';'); try AdoQuery1.ExecSQL; except // .... code gestion des éventuells erreurs .... Exit; end; end; //for....
Si j'ai une centaine d'enregistrements je doit attendre quelques minutes pour mettre ma base de données (MS Accès) à jour (5 sécondes en moyenne par enregistrement)! Pour un simple UPDATE c'est vraiment trop lent!
Code : Sélectionner tout - Visualiser dans une fenêtre à part AdoQuery1.ExecSQL;
J'avais pense à regrouper les requettes dans un fichier via la fonction SaveToFile ..... mon fichier resemblait à ceci (extraît de fichier test.sql ):
etc ... et de faire passer les requettes en une seule fois ..... c'est à dire:UPDATE DOSSIER SET PROVENANCE_PERFEO='SOURCE INCONUE'WHERE ID_ORDER ='f6717df0f6caf4ae929753b90dfcfe90';
UPDATE DOSSIER SET PROVENANCE_PERFEO='SOURCE INCONUE'WHERE ID_ORDER ='2420844a1bd6f7ccafbde04eb6f87c3d';
UPDATE DOSSIER SET PROVENANCE_PERFEO='SOURCE INCONUE'WHERE ID_ORDER ='32d21c5dca60dc4139ad4fab55a1b406';
UPDATE DOSSIER SET PROVENANCE_PERFEO='SOURCE INCONUE'WHERE ID_ORDER ='578330936803ba90a682aae01679caf2';
UPDATE DOSSIER SET PROVENANCE_PERFEO='SOURCE INCONUE'WHERE ID_ORDER ='b67b086ae7eabb286a90aff30535fad6';
mais cela me génère un message d'erreur disant; Qu'il y à du code en fin d'instruction SQL .... Donc je ne sais pas comment me prendre pour faire passer la "pillule" c'est à dire d'executer tous les requettes d'update via la Fonction LoadFromFile?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AdoQuery1.LoadFromFile('C:\test.sql'); AdoQuery1.ExecSQL;
Je suis ouvert à toutes les propositions permettant l'accelaration des requettes via UPDATE .....
Merci d'avance pour votre aide.
Partager