IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

"Data type 0xE7 has an invalid data length"


Sujet :

Développement SQL Server

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut "Data type 0xE7 has an invalid data length"
    Bonjour,

    J'ai converti une base de données SQL Server 2005 non unicode vers une base Sql Server 2008 unicode. Pour cela, j'ai généré un script de création à partir de la première base, puis je l'ai modifé pour adapter les types de données et les chaînes de caractères. Enfin, j'ai fais un import de données qui a réussi sans problème.

    Une procédure est utilisée dans le code source d'une application écrite en delphi et elle déclenche une erreur. Ou plutôt un avertissement parce que le code s'exécute ensuite sans erreur.

    La procédure fait un simple select sur une table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE PROCEDURE [dbo].[user_name]( @result nvarchar(40) output )
    AS
    SELECT top 1 @result=user_nom
    FROM users
     
    set @result = coalesce(@result, N'')
    La colonne de la table est du même type et de même taille.

    A l'exécution, l'avertissement lancé par SQL Server est:

    ---------------------------
    Warning
    ---------------------------
    ExecFunc : [user_name]
    The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0xE7 has an invalid data length or metadata length.
    ---------------------------
    OK
    ---------------------------
    Dans le code, c'est une chaîne de longueur indéfinie qui est utilisée pur récupérer la valeur renvoyée.

    Je ne vois pas d'où le problème peut venir, si ce n'est que si je change le type du paramètre en ntext, l'erreur ne se produit plus.

    Je pourrais laisser ntext mais j'aimerais bien quand même comprendre le pourquoi de ce "warning".

    Papy

    Oups ... apparemment, c'est plus une exception récupérée par le code appelant. J'investigue et je reviens .... Mais quoi qu'il en soit, l'erreur est bien renvoyé par l'appel de la procédure

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Un ORM type LINQ est'il utilisé?

    Si oui avez vous mis à jour votre DBML/EDMX?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Non, aucun ORM. Le code appelant est du Delphi 7 (autant dire du pascal).
    Uniquement OLE DB et ODBC.

    Si c'est à propos du bug connu du framework .net, j'ai effectivement trouvé un post sur le site de Microsoft à ce sujet. Mais dans le cas présent, je ne verrais pas le rapport. Enfin, je suis plus programmeur Delphi que spécialiste en base de données :-(

    http://support.microsoft.com/kb/971051

  4. #4
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Postez votre code executant la SP
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    ça , c'est un peu compliqué :-(
    Le code est tout un empilement de classes créées par le client.
    Et il faudrait que j'en publie des pages. Et de toutes façons, je n'ai pas le droit

    D'ailleurs, ça fait aussi tout un traitement sur les paramètres de retour. Je finis par me demander si l'erreur ne vient pas de là. Un type widestring non prévu quelquepart

Discussions similaires

  1. SQL Server 05 invalid data for type numeric
    Par Moine dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 12/04/2011, 12h08
  2. [VxiR2] Invalid data type comparison
    Par nawal59 dans le forum Designer
    Réponses: 8
    Dernier message: 28/03/2011, 14h59
  3. Réponses: 2
    Dernier message: 31/03/2009, 09h58
  4. IB5 : "invalid data type for arithmetic"
    Par ZoRRo75 dans le forum InterBase
    Réponses: 2
    Dernier message: 21/11/2008, 14h33
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo