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

Sybase Discussion :

tester le bon déroulement d'un insert


Sujet :

Sybase

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 55
    Points : 46
    Points
    46
    Par défaut tester le bon déroulement d'un insert
    Bonsoir
    je souhaiterais savoir comment faire pour savoir mon insert c'est déroulé comme il faut et qu'il a bien eu lieu sans erreur et si possible récupérer l'erreur.
    je pense à une variable systeme comme @@sqlstatus et quelques choses de ec genre.
    ( ce que je dois réaliser en faire est procedure qui exicute un insert et il y a un affichage qui dépend de cet insert genre :
    SI ( insert "ok - sans erreur ") alors affiche " bien - réussit "
    SINON affiche " mauvais - echec "

    Merci pour votre aidre

  2. #2
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Je sais qu'en PHP, la fonction mysql_query retourne la valeur TRUE si l'opération s'est bien déroulée...
    Après si tu souhaites faire ca au niveau du SGBD, peut être qu'un SELECT placé derrière le INSERT te permettrait de vérifier que tes données sont bien présentes dans la base Toutefois je ne suis pas convaincu de la propreté de cette solution...
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Bien que la grammaire du langage SQL procédural ait été normalisée, peu e SGBD se conforment à cette norme.
    Il est donc indispensable que vous précisiez quel SGBD vous utilisez et dans quel contexte sont exécutées vos requêtes pour pouvoir répondre à votre question.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Il existe plusieurs mécanismes pour y parvenir :

    1) quelque soit le nombre de lignes à insérer, s'il n'y a pas d'erreur, alors c'est que le serveur SQL les a intégrées. En revanche, si une exception a eu lieu (par exemple le viol d'une contrainte) alors aucune ligne, quelqu'en soit le nombre, n'a été insérée.

    2) la plupart des SGBDR permettent d'interroger une variable qui retourne le nombre de lignes impactées. C'est @@ROWCOUNT pour MS SQL Server.

    3) certains SGBDR incorporent des mécanismes plus avances pour avoir le détail des lignes impactées. Par exemple la clause OUTPUT de MS SQL Server : http://sqlpro.developpez.com/sqlserv...page=sql#LII-J

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 55
    Points : 46
    Points
    46
    Par défaut vérfier l'execution d'un insert
    Bonjour

    Je fais une procedure sql et dedans j'ai un "insert" .
    je veux savoir comment je fais pour tester si l'insertion a bien eu lieu sans erreur.
    exemple : j'ai un affichage dans ma procedure qui dépend de cet insert et donc je veux tester si mon "insert" s'est bien déroulé ou pas :

    si ( excution insert ok)
    alors "afficher <bravo>"
    sinon "afficher <echec - mauvais>"

    je pense à une variable systeme du genre sqlstatus . je ne sais pas si ça existe .

    Merci d'avance pour votre aide

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Les différents intervenants sur le post t'ont demandé de préciser ton SGBD, parce que la réponse en dépend, et ta réponse n'apporte pas grand chose à ton post de départ.
    A la question quel est ton SGBD, si tu ne sais pas tu peux éventuellement nous répondre dans quoi exécutes-tu tes requêtes, avec quel outil.

    A+
    Soazig

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    je travaille avec un serveur sybase , avec sql advantage

  8. #8
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Salut

    Sous Sybase, jette un oeuil du côté de la variable système @@sqlstatus. Si elle vaut 0, alors la requête a réussi.

    Enfin, c'est ce que ma mémoire me dit, à tout le moins

  9. #9
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Sous Sybase, il y a une variable @@error qui existe, si elle est différente de 0, alors l'insert c'est bien passé.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT NULL INTO #tmp_error
    IF @@ERROR <> 0
        SELECT "ERREUR !" -- On arrive ici, la colonne n'est pas nommée dans le select
    ELSE
        SELECT * FROM #tmp_error
     
    SELECT 1 AS 'val' INTO #tmp_no_error
    IF @@ERROR <> 0
        SELECT "ERREUR ! "
    ELSE
        SELECT * FROM #tmp_no_error -- On arrive ici
    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    Sous Sybase, il y a une variable @@error qui existe, si elle est différente de 0, alors l'insert c'est bien passé.
    Euh - petit lapsus: si @@error égal à zero, alors tout c'est bien passé.

    :-)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  11. #11
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Citation Envoyé par mpeppler Voir le message
    Euh - petit lapsus: si @@error égal à zero, alors tout c'est bien passé.

    :-)

    Michael
    Euh oui, 'scusez moi

    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

Discussions similaires

  1. Comment suivre le bon déroulement d'un trigger
    Par gascolese dans le forum Administration
    Réponses: 2
    Dernier message: 24/09/2013, 20h56
  2. Tester le bon fonctionnement de IIS
    Par Blunt dans le forum IIS
    Réponses: 3
    Dernier message: 27/07/2011, 18h56
  3. Tester le bon fonctionnement d'un serveur
    Par peppena dans le forum Linux
    Réponses: 10
    Dernier message: 25/08/2006, 13h43
  4. Réponses: 5
    Dernier message: 12/04/2005, 09h45

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