BOGUE : Si RPC est utilisé, le pilote ODBC SQL Server convertit en place

Traductions disponibles Traductions disponibles
Numéro d'article: 171910 - Voir les produits auxquels s'applique cet article
BOGUE : 17119 (SQL 6.5)

Agrandir tout | Réduire tout

Symptômes

Dans un programme ODBC self-written qui exécute une instruction préparée à un serveur SQL Server (configuré avec une page de codes OEM, comme code page 437 ou 850) les données dans la mémoire tampon passé dans le paramètre rgbValue de SQLBindParameter sont converties d'ANSI en OEM après l'émission de la SQLExecute. Cela peut être observée lors de l'utilisation des caractères étendus dans la mémoire tampon de caractères.

Dans Microsoft Access, lorsque vous récupérez des enregistrements dans une table ODBC attachée, chaque champ dans un enregistrement contient le message d'erreur "# supprimé". Cela se produit si la table de SQL Server attachée contient des caractères étendus dans la clé primaire de cet enregistrement.

Ce problème se produit si toutes les conditions suivantes sont remplies :
  • L'option «Générer procédures stockées pour instruction préparée» est activée dans la source de données ODBC utilisé.
  • L'option «Convertir OEM en caractères ANSI» est activée dans l'ODBC source de données utilisé.
  • Une instruction préparée est utilisée dans ODBC.
  • Un paramètre de SQLBindParameter contient un caractère étendu.

Cause

Le pilote ODBC SQL Server appelle la procédure stockée à SQLExecute par appel de procédure distante (RPC, Remote Procedure Call). Dans ce scénario, un paramètre passé est converti en place. Dans la mesure où Microsoft Access réutilise ces paramètres pour qu'elles correspondent aux données renvoyées aux valeurs de la clé primaire, il affiche «# supprimé» dans les enregistrements affectés.

Contournement

Pour contourner ce problème, effectuez l'une des méthodes suivantes, selon votre application :
  • Ne sélectionnez pas l'option «Générer procédures stockées pour instruction préparée».
  • Déplacez votre base de données SQL vers un serveur SQL Server s'exécutant sur la page de codes ANSI et ne sélectionnez pas l'option «Convertir OEM à des caractères ANSI».
  • Utilisez SQLExecDirect au lieu de SQLPrepare ou SQLExecDirect, lorsque cela est nécessaire.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits répertoriés au début de cet article. Nous étudions actuellement ce problème et nous publierons de nouvelles informations dans la base de connaissances Microsoft dès que possible.

Plus d'informations

Ce problème se produit également si vous utilisez la page de MS code traducteur au lieu de la case à cocher «Convertir OEM à des caractères ANSI».

Propriétés

Numéro d'article: 171910 - Dernière mise à jour: lundi 12 février 2007 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 6.0 Standard
  • Microsoft SQL Server 6.5 Édition Standard
  • Pilote ODBC Microsoft pour Microsoft SQL Server 2.5
  • Pilote ODBC Microsoft pour Microsoft SQL Server 2.65
  • Microsoft Access 2.0 Standard
  • Microsoft Access 95 Standard
  • Microsoft Access 97 Standard
Mots-clés : 
kbmt kbbug kbinterop kbprogramming kbusage KB171910 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: 171910
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.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

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