Existe-t-il un moyen d'écrire un hook qui sera exécuté avant que les modifications ne soient validées dans un DB d'accès? Je suis à la recherche d'un moyen de bloquer les modifications si un processus spécifique interroge actuellement la base de données.Blocage des modifications de la base de données Microsoft Access
Répondre
Vous ne nous avez pas donné beaucoup d'informations pour travailler avec. Pouvez-vous adapter quelque chose comme Create and Use Flexible AutoNumber Fields alors processus spécifique d'abord ouvre une table exclusivement? Ensuite, toutes les autres opérations susceptibles de modifier les données devront attendre jusqu'à ce qu'elles puissent verrouiller la même table. Qu'est-ce que processus spécifique? Avez-vous une méthode pour déterminer quand/si elle lit les données de votre base de données? Si est externe à la base de données, comme le code ASP du serveur Web qui utilise ADO pour récupérer des données, vous pouvez voir si les propriétés de connexion ADO Mode et IsolationLevel peuvent aider.
Mise à jour: J'ai utilisé un formulaire pour tester la propriété adModeShareDenyWrite Mode pour une connexion ADO. Lorsque le formulaire est ouvert, les autres utilisateurs peuvent ouvrir la base de données, mais sans apporter de modifications. Toutefois, si un autre utilisateur a déjà ouvert la base de données lorsque le formulaire tente d'ouvrir la connexion, une erreur se produit. Peut-être que votre script de déploiement pourrait tenter d'ouvrir une connexion adModeShareDenyWrite, et de renflouer en cas d'erreur.
Option Compare Database
Option Explicit
Dim cn As ADODB.Connection
Private Sub Form_Close()
If Not (cn Is Nothing) Then
cn.Close
Set cn = Nothing
End If
End Sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\\Cmpq\export\Access\backend\links2003.mdb;" & _
"User Id=admin;Password=;"
cn.Mode = adModeShareDenyWrite
cn.Open
End Sub
regardez mon commentaire à l'OP –
- 1. Traçage des modifications de la base de données MS Access
- 2. Base de données Microsoft Access .. Sélectionnez Requête
- 3. Ouvrir la base de données Microsoft Access dans Blackberry Téléphone
- 4. Exporter la base de données mysql vers Microsoft Access (.mdb)
- 5. Comment importer des données de Microsoft Access/SQL Server 2005 dans des données de base?
- 6. Détecter l'heure de la dernière modification sur une table de base de données Microsoft Access
- 7. Fluent NHibernate 1.1 avec base de données Microsoft Access 2007
- 8. Marquage Modifications de la base de données
- 9. Suivi des modifications de la base de données MySQL
- 10. Adhésion à Microsoft Access
- 11. Equivalent Web de OpenOffice.org Base ou Microsoft Access?
- 12. Comment insérer des valeurs dans une base de données Microsoft Access via JDBC?
- 13. SCOPE_IDENTITY() dans Microsoft Access
- 14. Microsoft Access 2007 Connection
- 15. Microsoft Office Access erreur
- 16. Moteur de base de données Microsoft Access - Échec de création de fichier
- 17. Erreur de base de données ASP.NET Access?
- 18. Comment puis-je supprimer les 8 premiers caractères d'un champ de base de données Microsoft Access?
- 19. Les modifications de l'utilisateur de la base de données SQL
- 20. Avoir des utilisateurs entrer des clés d'enregistrement dans Microsoft Access
- 21. Modifications de la base de données et branchement VCS
- 22. Fonction Microsoft Access TransferText: problème avec la page de codes
- 23. Taille du marché d'application de base de données d'utilisateurs finaux (Microsoft Access, Filemaker Pro, etc.)
- 24. Vérification des modifications de la base de données à des intervalles définis dans la page ASP.NET
- 25. Comment s'inscrire aux modifications de la base de données SMS?
- 26. Objets de commande pour la base de données Northwind Access
- 27. Base de données ASP.NET et Access
- 28. Base de données parent-enfant (MS ACCESS)
- 29. Communication avec la base de données et la base de données Microsoft Dynamics GP
- 30. sauvegarder la base de données sql de Microsoft SQL Server
Avez-vous essayé d'exécuter le processus spécifique avec un accès exclusif à la base de données? Cela empêcherait les autres processus de modifier la base de données pendant son exécution. –
Eh bien le processus "spécifique" est un ensemble de scripts de déploiement qui calcule certaines informations de la base de données. Mais si la base de données est changée au milieu de l'exécution du déploiement, tout est bouché. J'ai entendu dire que la lecture de la base de données ou de certaines tables uniquement pouvait être effectuée par programmation à partir des scripts de déploiement, puis réactivée une fois le déploiement terminé. –
Vous ne pouvez pas rendre la base de données en lecture seule, mais vous pouvez définir votre connexion pour qu'elle soit exclusive. Comment faire cela dépend de la façon dont vous accédez à la base de données Jet/ACE (ODBC, ADO/OLEDB). –