CORRECTIF : Message d'erreur lorsque vous exécutez une instruction SQL à l'aide du fournisseur OLE DB pour DB2: "SQLSTATE 22007, SQLCODE 181"

Traductions disponibles Traductions disponibles
Numéro d'article: 924599 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Envisagez le scénario suivant. Vous exécutez une instruction SQL à l'aide du fournisseur Microsoft OLE DB pour DB2. L'instruction SQL passe un paramètre de type datetime de Microsoft SQL Server à une colonne de base de données IBM DB2. La Colonne de base de données IBM DB2 utilise le type de données IBM DB2 DATE. Dans ce scénario, message d'erreur suivant peut s'afficher :
SQLSTATE : 22007, SQLCODE :-181
Par exemple, l'instruction SQL suivante passe un paramètre de type datetime de SQL Server à une colonne de base de données IBM DB2.
declare @var1 datetime
set @var1 = '2006-09-27 00:00:00.000'
SELECT COL1, COL2, COL3
FROM IBMDB2.TESTDATA.USER1.TABLE1
WHERE COL2 = @var1
Dans cet exemple, ce problème se produit si la colonne COL2 utilise le type de données IBM DB2 DATE.

Cause

Au moment de l'exécution, fournisseur OLE DB pour DB2 ne sait pas le type de données IBM DB2 correct pour la colonne de base de données IBM DB2 à laquelle le paramètre datetime de SQL Server est transmis. Par conséquent, fournisseur OLE DB pour DB2 inclut les informations relatives à la date et les informations de temps dans la valeur de fournisseur OLE DB pour DB2 passe à la base de données IBM DB2. Les informations d'heure ne sont pas valides pour le type de données IBM DB2 DATE. Par conséquent, message d'erreur mentionné dans la section «Symptômes» s'affiche.

Résolution

Microsoft Host Integration Server 2006

Pour résoudre ce problème, procurez-vous le dernier service pack pour Host Integration Server 2006. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
979497Comment faire pour obtenir la dernière pack de service Host Integration Server 2006

Microsoft Host Integration Server 2004

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif est conçu uniquement pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.

Si le correctif est disponible au téléchargement, il existe une section «Téléchargement de correctif logiciel disponible» en haut de cet article de la base de connaissances. Si cette section n'apparaît pas, contactez le service clientèle Microsoft et de support pour obtenir le correctif.

Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions supplémentaires et aux problèmes qui ne relèvent pas de ce correctif spécifique. Pour obtenir une liste complète des numéros de téléphone Microsoft auprès des services de support technique ou pour créer une demande de service distincte, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=support
Remarque Le formulaire «Téléchargement de correctif logiciel disponible» affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, il est, car un correctif n'est pas disponible pour cette langue.

Informations de fichier

La version anglaise de ce correctif possède les attributs de fichier (ou version ultérieure fichier) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour connaître le décalage entre l'UTC et l'heure locale, utilisez l'onglet fuseau horaire de l'élément de date et heure dans le panneau de configuration.
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-formeSP requis
Db2oledb.dll6.0.2048.0488,96003-Nov-200617 : 31x 86SP1
Db2oledb.hNon applicable24,57903-Nov-200617 : 36Non applicableSP1
Ddmstr.dll6.0.2048.044 03203-Nov-200617 : 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803-Nov-200617 : 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086 01603-Nov-200617 : 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617 : 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617 : 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617 : 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617 : 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617 : 32x 86SP1
Remarque En raison des dépendances de fichiers, le correctif plus récent qui contient ces fichiers peut également contenir des fichiers supplémentaires.

Fournisseur Microsoft OLE DB pour DB2 version 1.0

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif est conçu uniquement pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.

Si le correctif est disponible au téléchargement, il existe une section «Téléchargement de correctif logiciel disponible» en haut de cet article de la base de connaissances. Si cette section n'apparaît pas, contactez le service clientèle Microsoft et de support pour obtenir le correctif.

Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions supplémentaires et aux problèmes qui ne relèvent pas de ce correctif spécifique. Pour obtenir une liste complète des numéros de téléphone Microsoft auprès des services de support technique ou pour créer une demande de service distincte, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=support
Remarque Le formulaire «Téléchargement de correctif logiciel disponible» affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, il est, car un correctif n'est pas disponible pour cette langue.

Informations de fichier

La version anglaise de ce correctif possède les attributs de fichier (ou version ultérieure fichier) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour connaître le décalage entre l'UTC et l'heure locale, utilisez l'onglet fuseau horaire de l'élément de date et heure dans le panneau de configuration.
version 32 bits (x 86)
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-formeSP requis
Db2oledb.dll6.0.2048.0488,96003-Nov-200617 : 31x 86SP1
Db2oledb.hNon applicable24,57903-Nov-200617 : 36Non applicableSP1
Ddmstr.dll6.0.2048.044 03203-Nov-200617 : 31x 86SP1
Drdaresync.exe6.0.2048.0337,40803-Nov-200617 : 32x 86SP1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086 01603-Nov-200617 : 31x 86SP1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,36003-Nov-200617 : 32x 86SP1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,68803-Nov-200617 : 31x 86SP1
Mseidb2c.dll6.0.2048.071,68003-Nov-200617 : 31x 86SP1
Mseidb2d.dll6.0.2048.0435,20003-Nov-200617 : 31x 86SP1
Mseidrda.dll6.0.2048.0695,80803-Nov-200617 : 32x 86SP1
version 64 bits (x 64)
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-formeDossier
Db2oledb.dll7.0.2535.0758,54407-Nov-200612 : 34x 64Non applicable
Microsoft.hostintegration.dataaccesslibrary.dll7.0.2535.02,550,61607-Nov-200612 : 34x 64Non applicable
Microsoft.hostintegration.dataaccesstool.exe7.0.2535.0613,20007-Nov-200612 : 34x 64Non applicable
Mseidrda.dll7.0.2535.01,355,53607-Nov-200612 : 34x 64Non applicable
Snanls.dll7.0.2535.0128,77607-Nov-200612 : 34x 64Non applicable
Db2oledb.dll7.0.2535.0516,88007-Nov-200612 : 34x 86SYSWOW
Mseidrda.dll7.0.2535.0781,07207-Nov-200612 : 34x 86SYSWOW
Snanls.dll7.0.2535.0105,22407-Nov-200612 : 34x 86SYSWOW
Remarque En raison des dépendances de fichiers, le correctif plus récent qui contient ces fichiers peut également contenir des fichiers supplémentaires.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "S'applique à".

Plus d'informations

Ce correctif logiciel ajoute la prise en charge pour une nouvelle propriété de chaîne de connexion. À l'aide de la nouvelle propriété de chaîne de connexion, vous pouvez passer un paramètre de type datetime de SQL Server à une base de données IBM DB2 comme type de données IBM DB2 DATE. Fournisseur OLE DB pour DB2 supprime les informations de temps de la valeur du paramètre de type datetime de SQL Server. Par conséquent, fournisseur OLE DB pour DB2 passe uniquement les informations relatives à la date à la base de données IBM DB2.

La nouvelle propriété de chaîne de connexion a la définition suivante :
DateTime As Date = Value
Dans cette propriété de chaîne de connexion, vous pouvez définir la Value sous la forme Vrai ou faux. Si vous ajoutez le DateTime As Date = TRUE instruction à la chaîne de connexion fournisseur OLE DB pour DB2 convertit le paramètre de datetime de SQL Server en le type de données IBM DB2 DATE. Ensuite, fournisseur OLE DB pour DB2 passe la valeur à la base de données IBM DB2.

Si vous ajoutez le DateTime As Date = FALSE instruction à la chaîne de connexion fournisseur OLE DB pour DB2 passe le paramètre de datetime de SQL Server à la base de données IBM DB2, que vous le spécifiez dans l'instruction SQL. Dans ce cas, fournisseur OLE DB pour DB2 passe les informations relatives à la date et l'indication d'heure à la base de données IBM DB2.

Remarque Ce comportement est le comportement par défaut si vous n'ajoutez pas la propriété DateTime As Date à la chaîne de connexion.

L'exemple de chaîne de connexion suivant montre comment utiliser la propriété DateTime As Date.
; Everything after this line is an OLE DB initialization string.
Provider=DB2OLEDB;Password=<Password>;Persist Security Info=True;User ID=<Username>;Initial Catalog=S105FRDM;Defer Prepare=False;Derive Parameters=False;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=<Address>;Network Port=446;Package Collection=DB2USER;Default Schema=DB2USER;Default Qualifier=DB2USER;DBMS Platform=DB2/AS400;Process Binary as Character=False;Connection Pooling=True;Units of Work=RUW;DateTime As Date=TRUE
Important après avoir appliqué ce correctif et ajouter le DateTime As Date = TRUE instruction à la chaîne de connexion, message d'erreur suivant peut s'afficher :
SQLSTATE : 22007, SQLCODE: -180
Ce problème se produit si la colonne de base de données IBM DB2 utilise le type de données IBM DB2 TIMESTAMP. Ce problème se produit car la base de données IBM DB2 s'attend à recevoir les informations de date et les informations de temps lorsqu'une requête est passée à une colonne de base de données IBM DB2 qui utilise le type de données IBM DB2 TIMESTAMP. Le DateTime As Date = TRUE instruction, le fournisseur OLE DB pour DB2 supprimer les informations de temps dans la valeur du paramètre de type datetime de SQL Server. Par conséquent, les données ne sont pas valides lorsque la requête est transmise à la colonne de base de données IBM DB2 qui utilise le type de données IBM DB2 TIMESTAMP.

Si vous devez interroger une table IBM DB2 qui utilise le type de données IBM DB2, DATE et le type de données IBM DB2 TIMESTAMP, vous devrez peut-être utiliser plusieurs chaînes de connexion sont configurés pour utiliser les propriétés correctes. Ensuite, vous pouvez interroger avec succès les différents types de données IBM DB2.

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
824684Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft
Les produits de tierce partie cet article traite sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft n'offre aucune garantie, implicite ou autre, sur les performances ou la fiabilité de ces produits.

Propriétés

Numéro d'article: 924599 - Dernière mise à jour: jeudi 4 février 2010 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Host Integration Server 2006 Enterprise Edition
  • Microsoft Host Integration Server 2006
  • Microsoft Host Integration Server 2004 Enterprise Edition
  • Microsoft Host Integration Server 2004 Standard Edition
  • Microsoft OLE DB Provider for DB2
Mots-clés : 
kbmt kbautohotfix kbdb2oledb kbhis2004 kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB924599 KbMtfr
Traduction automatique
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.
La version anglaise de cet article est la suivante: 924599
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com