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

MS SQL Server Discussion :

Possibilités de debug avec Visual studio ou SQL Server Management Studio


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut Possibilités de debug avec Visual studio ou SQL Server Management Studio
    Bonjour, je souhaiterais connaitre toutes les possibilités que l'on a pour débugger au pas à pas une requête, une procédure stockée ou une fonction sous SQL Server 2008

    le mieux serait bien évidemment que l'on puisse débugger au pas à pas ou avec des points d'arrêt sur par exemple la procédure stockée dans l'explorateur de serveurs de visual Studio (2010 Ultimate pour mon cas) et que quand on lance l'appli cela s'arrête sur le point d'arrêt.
    Mais voilà j'ai mis des points d'arrêt là ou cela passe et on ne s'y arrête pas?
    cela est-il possible? Dois-je faire une manipe spéciale?

    j'ai tenté la même chose en mettant une point d'arrête coté SQL Server Management Studio (2008 R2) idem, comment faire, faut-il configurer quelque chose pour avoir la même connexion?


    j'ai copié ma requête dans un nouveau script dans SQL Server Management Studio (avec les paramètres en dure) j'ai posé des points d'arrêts sur toute les lignes et cliqué sur le triangle vert pour lancer l'exécution en mode debug mais
    le pointeur de programme ne s'arrête que sur le première et après quoi que je fasse (par exemple clic sur pas à pas principale) il exécute la requête jusqu'à la fin, es-ce que je m'y prend bien ou es-ce un bug?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT DISTINCT dbo.EC.IdUser
    FROM dbo.EC INNER JOIN dbo.List_C ON dbo.EC.idList_C = dbo.LC.idList_C
    WHERE dbo.List_C.idList_C IN
    (
     SELECT  dbo.RP.idList_C
     FROM dbo.RP INNER JOIN
     dbo.RPC ON RP.idRP = dbo.RPC.idRP
     WHERE dbo.RP.idRP = 4
    );
    Merci à l'avance

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Oui cette doc est complète, avec une petite expérimentation c'est parfait!
    je constate que au pas à pas on ne peut débugger que requête par requête et non ligne par ligne, cela semble normal mais un peut déroutant quand on est développeur.

    1) Il me semble donc qu'il est préférable de ne pas faire de grandes requêtes mais des petites qui s’appellent sinon on ne pourra pas débugger finement, qu'en pensez vous?

    2) Seulement si je me sert de fonctions pour construire ma requête, elle devient fortement moins optimale car en déplaçant une partie des tables recherchées dans une fonction, on enlève à l'optimiseur la possibilité de comprendre les relations entre les tables. (voir chapitre II-D-1. Fonctions sur http://rudi.developpez.com/sqlserver...misation/#LI-B)
    Auriez vous une autre solution à la fois facile à debugger et optimale?

    3) De plus est il possible de débugger le sql via visual studio en debug sur une application?

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par bibouilles Voir le message
    3) De plus est il possible de débugger le sql via visual studio en debug sur une application?
    OUI
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Citation Envoyé par bibouilles
    1) Il me semble donc qu'il est préférable de ne pas faire de grandes requêtes mais des petites qui s’appellent sinon on ne pourra pas débugger finement, qu'en pensez vous?
    Il n'est pas possible de faire du ligne à ligne parce que SQL est un langage à la fois ensembliste et déclaratif.
    Vous spécifiez donc ce que vous souhaitez obtenir, mais pas la façon de l'obtenir : vous faites l'inverse dans un langage par objet, par exemple.

    Comme vous le verrez ici, une instruction T-SQL (l'implémentation de SQL par Microsoft dans SQL Server), une instruction SQL n'est pas lue dans l'ordre dans lequel elle est spécifiée.

    C'est la raison pour laquelle on ne peut pas faire de ligne à ligne.
    De toute façon l'instruction plante ou elle ne plante pas, et vous avez la valeur des variables dans la pile.

    Ceci répond aussi à la question 2.

    D'autre part si votre base de données est bien modélisée, les requêtes s'écrivent normalement en quelques lignes ...

    Citation Envoyé par bibouilles
    3) De plus est il possible de débugger le sql via visual studio en debug sur une application?
    Avec Visual Studio 2008 et 2010, oui.

    @++

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    2) -> Merci bien elsuket mais j'ai du mal à comprendre, pourrais tu m'expliquer un peut plus stp?

    3) -> Merci mais Comment? débugger directement avec visual? j'y arrive avec MSSMS mais je n'y arrive pas avec Visual studio 2010 Ultimate et ne trouve pas ld'article appropriés

  7. #7
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par bibouilles Voir le message
    3) -> Merci mais Comment? débugger directement avec visual? j'y arrive avec MSSMS mais je n'y arrive pas avec Visual studio 2010 Ultimate et ne trouve pas ld'article appropriés
    Sous VS 2008 tu places tes points d'arrêt puis des petits coups de F11 et le pointeur de la souris sur la ligne à examiner renvoie pleins d'infos
    Il est possible de cliquer sur icon + pour développer les détails des infos
    Etienne ZINZINDOHOUE
    Billets-Articles

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    merci mais rien a faire, je n'arrive pas à aller sur les points d'arrêts de mes procédures.

    De plus je me suis mis juste avant l'appel de la requête sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    command.ExecuteReader...
    et appuyé sur F11, cela ne rentre pas dedans non plus.

    J'ai même vu que l'on pouvait, sur la connexion sur l'explorateur de serveur,
    faire clic droit : autoriser le débuggage SQL / CLR

    rien ne fait, impossible de renter en debug sur mes requêtes à part en faisant clic droit dessus puis en sélectionnant "Procédure stockée pas à pas"

  9. #9
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    2) -> Merci bien elsuket mais j'ai du mal à comprendre, pourrais tu m'expliquer un peut plus stp?
    Pouvez-vous être plus précis ?

    @++

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    selon vous étant donné que l'on a la "valeur des variables dans la pile" passer par des fonctions mutualiser des parties et réduire la taille des requêtes ne semble pas nécessaires pour simplifier le débogage car quand une requête plante, aussi longue et compliquée qu'elle puisse être, nous avons suffisamment d'information pour la débugger facilement es-ce bien ce que vous voulez dire?

    quand m'est indiqué par exemple erreur du coté de "WHERE" ou quelque chose du genre, il n'y a obligatoirement pas 2 endroits où l'on trouve "WHERE" dans la requête sinon l'indication serait plus précise?

  11. #11
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    selon vous étant donné que l'on a la "valeur des variables dans la pile" passer par des fonctions mutualiser des parties et réduire la taille des requêtes ne semble pas nécessaires pour simplifier le débogage car quand une requête plante, aussi longue et compliquée qu'elle puisse être, nous avons suffisamment d'information pour la débugger facilement es-ce bien ce que vous voulez dire?
    Oui, d'autant plus que les fonctions définies par l'utilisateur sont contre-performantes parce qu'elles ne sont pas ensemblistes.
    Bref, cela fausse tout.

    quand m'est indiqué par exemple erreur du coté de "WHERE" ou quelque chose du genre, il n'y a obligatoirement pas 2 endroits où l'on trouve "WHERE" dans la requête sinon l'indication serait plus précise?
    Si une telle erreur vous est indiquée, il s'agit d'une erreur de syntaxe.
    Sous SSMS, en double-cliquant sur celle-ci, le curseur est automatiquement placé sur la ligne de code qui a généré l'erreur de syntaxe

    @++

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup
    Auriez vous une idée sur le pourquoi je n'arrive pas à débugger le sql à partir de l'appli qui l'utilise? (voir mon poste du 23)

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    j'ai du nouveaux ! j'ai vu ceci :

    "Lors du débogage d'applications multicouches, vous ne pouvez pas utiliser Pas à pas détaillé pour effectuer un pas à pas à parti du code de la couche Application (C#, Visual Basic ou C++), dans le code sur SQL Server 2005 (T-SQL ou SQL/CLR). La procédure consiste ici à définir un point d'arrêt dans le code de la procédure stockée et à appuyer sur Continuer (F5) afin d'exécuter le code jusqu'au point d'arrêt."

    sur http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx

    Mais quand je lance le debug, le point d'arrêt que j'ai mis sur le select de ma procédure qui était rouge, devient blanc entouré de jaune avec un warning et si je met la souris dessus s'affiche:
    Le point d'arrêt ne sera pas atteint pour l'instant. Aucun symbole n'a été chargé pour ce document.

    Et le pointeur de programme ne s'arrête pas dessus en faisant comme il disent ni même en faisant F11

    j'ai vu ceci sur le forum:
    C/C++ général > Format des informations de débugage : Base de données du programme (/Zi)
    éditeur de lien > Debogage > Génération des informations de débugage : Oui (/DEBUG)

    à http://www.developpez.net/forums/d30...et-cest-effet/

    mais n'ai pas ces propriété sur mon projet C#

    n'ai trouvé que des choses dans l'onglet "Déboguer" des propriétés de mon projet et même en activant toute les cases à cocher de la partie "Activer les débogueurs" cela ne change pas mon problème

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/02/2013, 16h10
  2. membership avec Sql Server Management studio
    Par lizarazou dans le forum ASP.NET
    Réponses: 0
    Dernier message: 25/03/2011, 11h06
  3. SQL Server Management Studio Express avec SQL Server 2008
    Par cfeltz dans le forum Administration
    Réponses: 1
    Dernier message: 14/02/2009, 23h30
  4. SQL Server Management Studio et SQL Server 7.0
    Par jcd dans le forum Outils
    Réponses: 5
    Dernier message: 11/09/2008, 13h25
  5. Problème d'encoding avec SQL Server Management Studio
    Par Maskime dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 06/06/2008, 17h38

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