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

Bases de données Delphi Discussion :

[SQL SERVER] Syntax error converting the varchar value


Sujet :

Bases de données Delphi

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut [SQL SERVER] Syntax error converting the varchar value
    Bonjour,

    Je suis vraiment coincé et je n'arrive pas à trouver l'erreur.
    J'ai la SP (SQL SERVER) suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE PROCEDURE [dbo].sp_select_usager
    (
    @SortBy varchar(20)
    )
    AS
    BEGIN
    Select table_usager.code_usager,
    table_usager.nom_usager,
    table_usager.ville_usager
    etc...
     
     ORDER BY CASE
      WHEN @SortBy = 'code_usager' THEN table_usager.code_usager
      WHEN @SortBy = 'nom_usager' THEN table_usager.nom_usager
      WHEN @SortBy = 'ville_usager' THEN table_usager.ville_usager
      END
    END
    l'appel en delphi se fait à travers une procedure ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TDM1.RefreshTable(oTable: TADOStoredProc;Param,oField:string);
    begin
    oTable.Close;
    Table.Parameters.Refresh;
    oTable.Parameters.ParamByName(Param).Value:=oField;
    oTable.open;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DM1.RefreshTable(DM1.SpUsager,'@code_usager','code_usager');


    J'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    syntax error converting the varchar value 'IN0002' to a column or data type int
    Le code_usager est de type varchar. J'ai meme essayer de passer d'autres champs j'obtiens tjrs la erreur enfin je ne comprend pas hier au debut ca a fonctionné trés bien et maintenant je galère depuis cette erreur...

    Je vous remercie pour votre aide
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Pourquoi tu mets en nom de paramètre @code_usager alors que dans ta procédure stockée le nom du paramètre est @SortBy ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Désolé de répondre tardivement probleme de connection....
    Pourquoi tu mets en nom de paramètre @code_usager alors que dans ta procédure stockée le nom du paramètre est @SortBy ?
    pardon c'est juste une faute de frappe le nom de parametre est @SortBy puisque le serveur répond déjà par une erreur de conversion de type....
    Mais je viens de résoudre le probleme il fallait mettre un CAST parce que une des colonnes figurant dans l'ORDER BY (que j'ai omis ici dans le post car ne voulant pas surchargé ce post) est en Integer et donc le code devient ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ORDER BY CASE
      WHEN @SortBy = 'code_usager' THEN table_usager.code_usager
      WHEN @SortBy = 'nom_usager' THEN table_usager.nom_usager
      WHEN @SortBy = 'ville_usager' THEN table_usager.ville_usager
      WHEN @SortBy = 'code_com' THEN CAST (table_usager.code_com AS CHAR(4))
      END
    Merci quand meme
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2010, 16h50
  2. TSQL - sql server 200 - error syntax
    Par squalito dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2009, 07h38
  3. Réponses: 1
    Dernier message: 03/03/2009, 14h44
  4. Syntax error converting character string to smalldatetime data type.
    Par Anthony.Desvernois dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2007, 17h26
  5. [SQL Server 2000] error lors d'un select
    Par ardi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2006, 08h39

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