VB6 Connexion ADO - Comment Vérifier si dans la Transaction?
Est-il possible de dire, en utilisant seulement le ADODB.Objet de connexion, si oui ou non il est actuellement impliqué dans une transaction?
J'aimerais être capable de le tester sur la connexion de l'objet lui-même, sans compter sur le maintien d'un booléen à côté de celui-ci à jour.
OriginalL'auteur Tom Tresansky | 2010-04-07
Vous devez vous connecter pour publier un commentaire.
La BeginTrans méthode peut être utilisée comme une fonction qui retourne le niveau d'imbrication de la transaction. Si vous créez une propriété pour stocker ce que vous pouvez vérifier où vous en avez besoin pour voir si elle est supérieure à 0. Lorsque vous commit ou rollback, vous aurez besoin pour décrémenter la propriété vous-même.
Vous pouvez également adapter la valeur de retour au travail à l'intérieur d'une fonction qui retourne True/False si le niveau > 1. Je n'aime pas cela, mais il devrait ressembler à quelque chose comme ceci (sans erreur de manipulation)
Habillage avec votre propre connexion d'une classe pourrait avoir d'autres avantages. Si jamais vous avez besoin de mettre à niveau vers VB.net, il peut être plus facile si vous avez enveloppé tous les objets ADO dans vos propres objets. Vous pourriez faire entre eux ont des signatures similaires à l'ADO (pour minimiser les changements de code), mais seulement d'exposer le minimum de fonctionnalités, afin de limiter le champ d'application de la mise à niveau de l'effort. Je vous suggère de les mettre dans un projet de DLL sorte que le projet n'a même pas référence à ADO. La divulgation complète: nous n'avons pas fait cela complètement dans nos propres projets, mais je souhaite que nous avions.
Si seulement notre moteur de reporting utilisé un wrapper autour de
ADODB.Connection
! J'ai joué avec l'idée de minimiser les changements de l'état existant de l'extraction de code, de sorte que les utilisateurs peuvent exécuter des rapports sur une connexion sans fil (ce qui, dans notre cas, passe par une coutume serveur RPC).OriginalL'auteur jac
Si vous vous connectez à un Serveur Microsoft SQL server et peut compter sur elle pour répondre assez vite (c'est à dire qu'il n'est pas de l'autre côté de la planète), vous pouvez effectuer la requête:
OriginalL'auteur Stijn Sanders
Il semble que vous pouvez vérifier l'ADO à l'état. http://msdn.microsoft.com/en-us/library/ms675068%28v=VS.85%29.aspx
Vous le savez probablement déjà, cette autre partie, mais je vais le poster quand même.
C'est ce qui explique comment les opérations de travail avec ADO en VB.
http://support.microsoft.com/kb/198024
OriginalL'auteur Thomas Schultz
Vous ne pouvez pas, à moins que vous suivez vous-même. L'objet de connexion n'ont pas de biens traiter avec l'état de la transaction. Vous aurez à votre proc définir un indicateur dans une autre table/paramètres de la zone si vous AVEZ de l'avoir (ce qui peut être problématique si les erreurs non gérées se produire et le drapeau de l'etat est "coincé" avec un état non valide, vous devez venir avec une pièce d' "délai d'attente" ou annuler pour ignorer/tuer/remplace la précédente).
OriginalL'auteur jasonk