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 :

Problème exécution d'une requête


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2018
    Messages : 37
    Par défaut Problème exécution d'une requête
    Bonjour,

    Je travaille sur la un projet de migration de la base de données Orcale en SQL Server. J'essaye de traduire la fonction décode d'Oracle en SQL.

    Voici la requête en Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT "Acquittée", "Apparition", "Bit", "Disparition", "Equipement", "Libellé", "Mot", "N° Equipement"
    FROM DEFAUTS 
    WHERE
    ("Equipement" = DECODE(:Equipement, '', "Equipement", :Equipement)) 
    ORDER BY "Apparition" DESC, "N° Equipement", "Mot", "Bit"
    Ma traduction en SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE @Equipement Nvarchar(80)
    SELECT "Acquittée", "Apparition", "Bit", "Disparition", "Equipement", "Libellé", "Mot", "N° Equipement" 
    FROM DEFAUTS 
    WHERE 
    "Equipement" = 
    CASE @Equipement
    WHEN '' THEN "Equipement"
    else @Equipement
    END
    ORDER BY "Apparition" DESC, "N° Equipement", "Mot", "Bit"
    Mon problème j'arrive bien à exécuter la requete sur SQL Management studio, mais lorsque j'ai crée la requête sur visual studio avec le un table adapter j'ai eu le message d'erreur suivant :

    Nom : Capture.JPG
Affichages : 399
Taille : 35,3 Ko

    Voici la requete que j'ai crée dans le tableapater dans Visual studio

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT        Acquittée, Apparition, Bit, Disparition, Equipement, Libellé, Mot, [N° Equipement]
    FROM            DEFAUTS
    WHERE        (Equipement = CASE @Equipement WHEN '' THEN [Equipement] ELSE @Equipement END)
    ORDER BY Apparition DESC, [N° Equipement], Mot, Bit
    Je vous remercie d'avance pour votre aide.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    bonjour,

    Est-ce que vous utilisez le même compte dans les deux cas ?

    quelle est la structure de la table ?

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2018
    Messages : 37
    Par défaut
    Bonjour,

    Oui j'utilise le même compte pour accéder à la base de données.
    voici la structure de la table
    Nom : Capture.JPG
Affichages : 353
Taille : 28,1 Ko

  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 : 43
    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
    Par défaut
    Attention aux traduction automatique ORACLE-> SQL SERVER qui vous génère des decimal(18,0) en lieu et place de classique integer...
    je suis perplexe et curieux de savoir vers quelle table pointe la colonne Bit (attention également aux mot clé...)

    Pouvez vous nous indiquer le code C# de l'appel svp?

    Je vous invite également à abandonner les DataAdapter/datatable etc, sauf réel besoin de faire du OFFLINE...

    Cordialement

  5. #5
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2018
    Messages : 37
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Attention aux traduction automatique ORACLE-> SQL SERVER qui vous génère des decimal(18,0) en lieu et place de classique integer...
    je suis perplexe et curieux de savoir vers quelle table pointe la colonne Bit (attention également aux mot clé...)



    Pouvez vous nous indiquer le code C# de l'appel svp?

    Je vous invite également à abandonner les DataAdapter/datatable etc, sauf réel besoin de faire du OFFLINE...

    Cordialement
    Bonjour,

    Je vous remercie pour votre réponse, je suis entrain de réfléchir comment je peux exprimer la requête sans passer par les DataAdapter.

    En Oracle, la requête dans le datatable est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT     "Acquittée", "Apparition", TO_CHAR("Apparition", 'dd/MM/yy HH24:MI:SS.FF3') AS "Apparition2", "Bit", TO_CHAR("Disparition", 'HH24:MI:SS') AS "Disparition2", 
                          "Equipement", "Libellé", "Mot", "N° Equipement"
    FROM         DEFAUTS
    WHERE     ("Apparition" >= :DateDebut) AND ("Apparition" < :DateFin) AND ("Equipement" = DECODE(:Equipement, '', "Equipement", :Equipement))
    ORDER BY "Apparition" DESC, "N° Equipement", "Mot", "Bit"
    Au niveau du code VB, l'appel est effectué via le nom du table adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep = DTAJournalDéfauts.FillByDates(DSJournalDéfauts, DTDebut, DateAdd(DateInterval.Day, 1, DTFin), Equipement)
    Vu que le programme est trop compliqué, j'ai essayé de traduire la requête en sql ( Case remplace Decode ) et de modifier que la requête du table adapter. Mais je n'arrive pas à traduire la requête

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 440
    Par défaut
    Bonjour,
    Je vois dans le message d'erreur que les doubles-quotes autour des noms de colonnes ont disparu.
    Or bit est un mot réservé, donc peut-être que le problème vient de là.

    Tatayo.

  7. #7
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2018
    Messages : 37
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Je vois dans le message d'erreur que les doubles-quotes autour des noms de colonnes ont disparu.
    Or bit est un mot réservé, donc peut-être que le problème vient de là.

    Tatayo.
    Bonjour,

    Merci pour votre réponse, j'ai ajouté les doubles - quotes pour les noms des colonnes, mais toujours le même message d'erreur.

  8. #8
    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 : 43
    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
    Par défaut
    Pouvez vous préciser quelle est la fonction appelée pour le fill? FillByEquipements?
    Si oui pouvez vous afficher le code généré du data adapter?

    EN VB 6 vous pouvez passer par DAO: https://warin.developpez.com/access/dao/?page=partie_5

  9. #9
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2018
    Messages : 37
    Par défaut
    Oui pour cette data table, il y 3 requête fill : FillByEquipements, FillByDates, FillByDéfautsPresents

    Je vois pas comment j'affiche le code généré par FillByEquipements. J'ai essayé afficher code mais ça se passe rien

Discussions similaires

  1. Problème d'exécution d'une requête simple
    Par developppez dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/03/2009, 13h10
  2. Problème Hibernate exécution d'une requête
    Par blackmisery dans le forum Hibernate
    Réponses: 2
    Dernier message: 13/07/2008, 12h49
  3. [MySQL] problème d'exécution d'une requête
    Par max72100 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/06/2008, 16h28
  4. Réponses: 4
    Dernier message: 24/04/2007, 16h45
  5. [MySQL] Problème d'exécution d'une requête!
    Par pony99 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/01/2007, 11h38

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