Bonjour tout le monde!
J'ai un petit soucis avec une application Delphi 6 qui fonctionne avec une base de données Firebird 2.1
J'aimerais utiliser le monitoring de table et lister les attachements actifs.
J'utilise donc une requête
La requête fonctionne très bien si je vais directement dans ma BDD sans passer par delphi. J'utilise par exemple le petit outil DBEXPL32. Chaque fois que j'execute la requête les attachements sont mis à jour et j'ai la liste de tous ceux qui utilisent ma BDD. On voit également que le N° d'attachement utilisé par DBEXPL32 reste toujours le même, la connexion n'est donc pas interrompue pour mettre à jour la table virtuelle MON$ATTACHMENTS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM MON$ATTACHMENTS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Requête 1: MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1234 | DBEXPL32.EXE Requête 2 : ('Après l''ouverture d''une deuxième session DBEXPL32.EXE') MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1234 | DBEXPL32.EXE 1235 | DBEXPL32.EXE
La situation se corse lorsque j'essaie de faire la même chose depuis mon application delphi. j'utilise un composant TDatabase et un TwwQuery pour me connecter et là, les changements n'apparaissent pas dans la liste :
Si je ferme la base de donnée et la réouvre avant d'exécuter ma requête, les changements apparaissent mais le n° d'attachement est modifié (Dans ce cas-ci, le 1234) ce qui est un problème vu que j'utilise justement ce N° d'attachement tout au long de mon application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Requête 1: MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1234 | MonAppliDelphi.EXE Requête 2 : ('Après l''ouverture d''une deuxième session MonAppliDelphi.EXE') MON$ATTACHMENT_ID | MonAppliDelphi.EXE -------------------+-------------------------- 1234 | MonAppliDelphi.EXE
D'après ce que j'ai lu, la table MON$ATTACHMENTS est virtuelle et pas mise à jour tout le temps. Peut-être mon problème vient-il de là. Si c'est le cas, quelqu'un connaît-il un moyen de forcer la mise à jour et la recréation de cette table sans fermer la base de données?
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 Requête 1: MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1234 | MonAppliDelphi.EXE Requête 2 : ('Après l''ouverture d''une deuxième session MonAppliDelphi.EXE') (Fermeture et réouverture de la BDD) MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1236 | MonAppliDelphi.EXE 1237 | MonAppliDelphi.EXE Résultat souhaité : ('Après l''ouverture d''une deuxième session MonAppliDelphi.EXE') MON$ATTACHMENT_ID | MON$REMOTE_PROCESS -------------------+-------------------------- 1234 | MonAppliDelphi.EXE 1235 | MonAppliDelphi.EXE
Ou alors Quelqu'un connait-il une solution à mon problème?
Merci d'avance
Partager