Bonjour à tous,
le code suivant va chercher dans un fichier texte le nom des requêtes créées dans ma DB ACCESS et les place dans un TStringList. Une boucle qui exécute ces requêtes et un test sur une des requêtes ([Query 01 Création Tableau Zmir0678 aujourdhui]). Ensuite je fait appel à GetTableNames pour tester l'existance d'une table bien précise (Zmir0678 aujourdhui) => si elle existe, je la supprime avec un DROP TABLE sinon j'exécute la requête qui s'occupe de créer la table. Le problème c'est que même si le DROP fonctionne j'ai un message lors de l'exécution de cette requête me disant que la table 'Zmir0678 aujourdhui' existe déja (Alors que dans ACCESS, la table a bien disparu) !!! je comprend pas !!
Avez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 procedure TfrmMain.btnqueryClick(Sender: TObject); var i,j:integer; SL: TStringList; begin SL:=TStringList.Create; ADOConnection1.GetTableNames(SL,False); for i:=0 to strlistQuery.Count-1 do begin self.Cursor:=crHourGlass; shape1.Brush.Color:=clred; Panel1.Caption:='Requête "'+strlistQuery[i]+'" en cours d''exécution ...'; adocommand1.CommandText:=strlistQuery[i]; if strlistQuery[i]='[Query 01 Création Tableau Zmir0678 aujourdhui]' then begin if frmdatevalue.ShowModal=mrOk then begin adocommand1.Parameters.AddParameter; adocommand1.Parameters[0].DataType:=ftDate; adocommand1.Parameters[0].Value:=formatdatetime('dd/mm/yyyy',frmDateValue.varvalue); for j:=0 to SL.Count-1 do begin if SL[j]='Zmir0678 aujourdhui' then begin ADOQuery1.Close; ADOQuery1.SQL.Text:='DROP TABLE [Zmir0678 aujourdhui]'; ADOQuery1.ExecSQL; Break; end; end; end; end; Application.HandleMessage; adocommand1.Execute; Application.ProcessMessages; end; shape1.Brush.Color:=$0000CE00; //PlaySound(PChar(ExtractFilePath(Application.ExeName)+'/leon.wav'),Handle,SND_ASYNC); self.Cursor:=crDefault; Panel1.Caption:='En attente d''instruction' end;
Merci d'avance pour votre aide !
Partager