CORRECTIF : ADO supprime des erreurs lors de l'extraction globale en Nonvariant Datatypes

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

274423
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Lors de l'extraction de valeurs de l'ensemble de lignes dans les types de données nonvariant, ActiveX Data Objects (ADO) peuvent supprimer les erreurs liées à l'état du jeu d'enregistrements, telles que les notifications que l'enregistrement est verrouillé par un autre utilisateur.

Ce problème se produit dans Microsoft Data Access Components (MDAC) version 2.50.4403.12 (Microsoft Windows 2000/MDAC 2.5 RTM) et 2.51.5303.5 (Windows 2000/MDAC 2.5 SP1). Ce problème ne se produit pas dans la version MDAC 2.60.6526.3 (MDAC 2.6 RTM).
Cause
Un chemin d'accès du code légèrement différent est prise selon si l'application est l'extraction dans les types de données variants. L'utilisation de variantes est encapsulée dans un objet de contexte interne qui permet de renvoyer des informations d'erreur. Nonvariants n'ont pas de ce wrapper de contexte et ne retournent pas d'informations sur l'erreur.
Résolution
Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft Data Access Components 2.5. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
293312Procédure d'information : Pour obtenir le dernier MDAC 2.5 Service Pack
La version anglaise de cette dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. La date et l'heure de création de ces fichiers est exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet fuseau horaire dans l'outil date et heure du Panneau de configuration.
   Date       Version        Size             File name   ----------------------------------------------------------   8/29/2000  2.51.5629.0     20,480 bytes    Msader15.dll   8/29/2000  2.51.5629.0    487,696 bytes    Msado15.dll   8/29/2000  2.51.5629.0    172,304 bytes    Msadomd.dll   8/29/2000  2.51.5629.0     57,616 bytes    Msador15.dll   8/29/2000  2.51.5629.0    184,592 bytes    Msadox.dll   8/29/2000  2.51.5629.0     57,616 bytes    Msadrh15.dll   8/29/2000  2.51.5629.0     94,480 bytes    Msjro.dll				

SOLUTION DE CONTOURNEMENT

Il n'existe aucune solution de contournement pour ce problème.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés au début de cet article. Ce problème a été corrigé dans Microsoft Data Access Components 2.5 Service Pack 2.
Plus d'informations

Procédure pour reproduire le problème

  1. Copiez le code suivant dans un projet Visual Basic :

    RemarqueVous devez modifier l'UID <username>valeur et le PWD = valeur < mot de passe fort > pour les valeurs correctes avant d'exécuter ce code. Assurez-vous que UID possède les autorisations appropriées effectuer cette opération sur la base de données.
    Dim cn As ADODB.Connection, cnOtherUser As ADODB.ConnectionDim rs As ADODB.Recordset, rsOtherUser As ADODB.RecordsetDim strConn As String, strSQL As StringDim varData As Variant, intData As IntegerstrConn = "Provider=MSDASQL;Driver={SQL Server};Server=YourServer;Database=Northwind;UID=<user name>;PWD=<strong password>;"strSQL = "SELECT * FROM Customers"Set cnOtherUser = New ADODB.ConnectioncnOtherUser.Open strConnSet rsOtherUser = New ADODB.RecordsetrsOtherUser.Open strSQL, cnOtherUser, adOpenKeyset, adLockPessimistic, adCmdTextrsOtherUser.MoveFirstSet cn = New ADODB.Connectioncn.Open strConncn.CommandTimeout = 10Set rs = New ADODB.Recordsetrs.Open strSQL, cn, adOpenKeyset, adLockPessimistic, adCmdTextIf MsgBox("Use Variant?", vbYesNo) = vbYes Then    On Error Resume Next    varData = rs(0)    If Err.Number <> 0 Then        MsgBox Err.Description        Err.Clear        cn.Errors.Clear    Else        MsgBox "No error!"    End If    On Error GoTo 0Else    On Error Resume Next    intData = rs(0)    If Err.Number <> 0 Then        MsgBox Err.Description        Err.Clear        cn.Errors.Clear    Else        MsgBox "No error!"    End If    On Error GoTo 0End Ifrs.Closecn.ClosersOtherUser.ClosecnOtherUser.Close					
  2. Ajouter une référence à Microsoft ActiveX Data Objects 2.5 Library.
  3. Exécutez le code, puis sélectionnez Oui lorsque vous êtes invité à utiliser une valeur de type Variant. Notez qu'un message d'erreur «Délai d'attente expiré» est renvoyée, indiquant que les enregistrements ne pourraient pas être extraites dans le laps de temps spécifié.
  4. Exécutez à nouveau le code et cette fois choisissez non lorsque vous êtes invité à utiliser une valeur de type Variant. Cette fois une erreur est renvoyée pour indiquer qu'il n'existe aucun enregistrement en cours mais rien n'indique que vous a dépassé le délai de votre.
Références
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
247757CORRECTIF: Fuite de connexion à l'aide de la commande paramétrée dans ADO
264442CORRECTIF : Jeu d'enregistrements ADO perd la propriété de filtre lorsqu'en ordre en cours
264701CORRECTIF : Passage ADO Recordset ByRef réinitialise les informations sur les erreurs
ADO Supprimer supprime l'erreur messages timeout variante extraction

Warning: This article has been translated automatically

Propriétés

ID d'article : 274423 - Dernière mise à jour : 02/23/2014 22:19:52 - Révision : 2.2

  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbado250fix kbbug kbfix kbmdac250fix kbqfe KB274423 KbMtfr
Commentaires