Accueil > Forum > > > > Procédure ou fonction et retour d'une valeur
Procédure ou fonction et retour d'une valeur
vendredi 22 février 2008 à 14:02:46 |
Procédure ou fonction et retour d'une valeur

Max207
|
Bonjour à tous,
Je fais mes premiers pas en SQL Server et je rencontre quelques difficultés. Pas de soucis niveau création des tables & cies car je suis un habitué de SQL depuis quelques années. Ces derniers temps, j'ai beaucoup travaillé avec PostgreSQL et en particulier sur la programmation côté BDD. J'arrivais à créer des fonctions biens pratiques assez simplement... Nous y voilà car c'est ce que je tente de convertir en SQL Server (ou T-SQL devrais-je dire). Sous cet SQL j'ai du mal à comprendre la différence entre procédure stockée et fonction car d'après ce que j'ai lu elles retournes des valeurs toutes les deux. Pourriez-vous m'expliquer?
Entrons dans le vif du sujet. Je vais vous donner l'exemple d'une fonction que j'utilisais en PostreSQL car je cherche son équivalent en T-SQL.
J'ai donc une fonction delete_user qui a pour but de supprimer un utilisateur en vérifiant si celui-ci est lié à une autre table. Si c'est le cas alors l'utilisateur est supprimé logiquement (càd qu'une valeur dans la table d'utilisateur passe au booléan TRUE, c'est donc un UPDATE) et si il n'est pas lié alors on le supprime physiquement (DELETE). Chose très importante pour moi, selon le cas de suppression je souhaite retourner un code (int) adapté a la situation soit : 0 si suppression logique et 1 si suppression physique.
Voici mon code coté PostreSQL:
create function delete_user(integer) returns integer
//la fonction a un argument type int et retourne un argument type int
AS ' DECLARE var_iduser ALIAS FOR $1;
//la variable passée en paramètre
DECLARE var_temp INTEGER;
//une variable déclarée localement
BEGIN SELECT id_utilisateur INTO var_temp FROM table_message WHERE id_utilisateur=var_iduser;
//on fait un select de l'id_utilisateur dans la table message.
IF FOUND THEN
//si il y a un résultat (grâce au SELECT INTO var_temp), on fait un UPDATE
UPDATE table_utilisateur SET delete_logique=TRUE WHERE id_utilisateur=var_iduser; return 0;
//la fonction retourne 0, suppression logique
ELSE DELETE FROM table_message WHERE id_utilisateur=var_iduser;
//si pas de résultat on fait un delete
return 1;
//la fonction retourne 1, suppression physique
END IF;
END; ' LANGUAGE 'plpgsql';
Ensuite je devrai récupérer cette valeur en C#, ASP.NET (ExecuteScalar je crois) mais ça c'est une autre histoire.
Puis-je espérer un ptit coup de main? Merci d'avances. A bientôt !
|
|
jeudi 28 février 2008 à 14:51:21 |
Re : Procédure ou fonction et retour d'une valeur

lemmingperceval
|
Regarde peut-être: Si tu veux retourner une valeur, tu dois faire un SELECT à la fin de ta procédure.
|
|
Cette discussion est classée dans : fonction, sql, utilisateur, var, delete
Répondre à ce message
Sujets en rapport avec ce message
Fonction Difference (soundex) SQL server [ par oluha ]
BonjourJ'ai besoin d'utiliser la fonction Difference (qui se base sur le soundex) mais je trouve qu'elle n'est pas assez précise du fait que le sounde
Erreur sur fonction IIF sous SQL server ? [ par mmaidev ]
La fonction "UPDATE Tab_NumCycle SET Cycle = IIF(cycle>4999,1,cycle + 1) qui fonctionnait avec une base Acces ne fonctionne pas avec une base SQL; pou
Faire un concat dans une requete sous access [ par sebclick ]
Bonjour,J'ai vu dans la doc sql que l'on peut réaliser une concaténation de deux chaines lors de la requete.A priori, Microsoft SQL gère cette fonctio
SQL SERVEUR - Restriction d'accès [ par arnaudc ]
Bonjour, Je voudrai savoir s’il est possible de limité l’accès à une base SQL SERVER à un seul utilisateur. L’utilisateur ‘sa’ ne doit même pas pourv
help svp [ par melleweb ]
je cherche une fonction de manipulation des chaines de caractères en pl/sql ou sql pareil a cet exemple:fonction_recherchée('salut tout le monde','mon
helr please [ par melleweb ]
je cherche une fonction de manipulation des chaines de caractères en pl/sql ou sql pareil a cet exemple:fonction_recherchée('salut tout le monde','mon
fonction pl/sql retournant un tableau [ par mahni ]
bonjour, Je voudrais savoir comment écrire une fontion qui retourne un tableaux comme résultat en pl/sql. Je voulais tout simplement afficher à par
Cherche equivalence d'une fonction de Sybase (ASE) à SQL Anywhere (ASA) [ par Flora1005 ]
Bonjour, Je recherche l'équivalent de la fonction sp_helpindex (qui liste tous les index d'une base pour Sybase) en SQL Anywhere ....Merci d'avance
Syntaxe delete erreur [ par didygwatinik ]
Bonjour, J'obtiens une erreur de syntaxe mysql sur la 1ere ligne de ma requête , je ne vois pas où je me suis trompée est - ce que quelq'un peut m'aid
Connexion SQL avec utilisateur du domaine. [ par Arcadams ]
Bonjour à tous, J'étudie actuellement le fait de remettre un peu d'ordre (enfin je vais essayer...) sur les connexions d'un serveur SQL 2005. En effet
Livres en rapport
|
Derniers Blogs
[MIX 2010] - WINDOWS PHONE 7 EN SUPER STAR DU MICROSOFT MIX 2010 ![MIX 2010] - WINDOWS PHONE 7 EN SUPER STAR DU MICROSOFT MIX 2010 ! par redo
Me voici enfin arrivé au Microsoft Mix 2010, je dois vous avouer être arrivé un peu plus tard que d'habitude, ce qui explique que je n'ayez vu aucune info passer quant au premier keynote . certains événements sont plus importants que tout, ce qui était mo...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LIVRE GRATUIT SUR PROGRAMMER WINDOWS PHONE 7 SERIES ![MIX 2010] - LIVRE GRATUIT SUR PROGRAMMER WINDOWS PHONE 7 SERIES ! par redo
Disponible gratuitement : (153 pages) PDF Version : http://download.microsoft.com/download/7/C/8/7C820C6F-C205-4ECF-B9F3-1505DD13F9BF/ProgWinPhonePreview.pdf XPS Version : http://download.microsoft.com/download/E/3/5/E359FC51-1CF5-47F1-9BF3-74AB09D3339B/P...
Cliquez pour lire la suite de l'article par redo SQL SERVER : ESTIMER LE NOMBRE DE LIGNES RENVOYéES PAR UNE REQUêTE AVEC SQLCLRSQL SERVER : ESTIMER LE NOMBRE DE LIGNES RENVOYéES PAR UNE REQUêTE AVEC SQLCLR par christian
Dans certains cas très particuliers il peut être intéressant de savoir le nombre de ligne que va renvoyer une requête sans exécuter cette dernière. En effet les opérations de comptage sont généralement gourmande en ressource est très difficile à optim...
Cliquez pour lire la suite de l'article par christian [WF4] ACTIVITY AVEC VUE DéTAIL MASQUéE PAR DéFAUT, VIVE WPF![WF4] ACTIVITY AVEC VUE DéTAIL MASQUéE PAR DéFAUT, VIVE WPF! par JeremyJeanson
Le code suivant est destiné à répondre à une problématique courante en Workflow : Vous avez une activité dont le designer est complexe ou dont l'affichage prend une place importante à l'écran et la possibilité Collapse/Expand ne répond pas pleinement à vo...
Cliquez pour lire la suite de l'article par JeremyJeanson [SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010[SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010 par neodante
L'intégration native de Silverlight dans SharePoint 2010 représente une avancée majeure dans la conception des applications sur la plateforme SharePoint. Et pour cause, Silverlight repousse les limites du Web de SharePoint en offrant une expérience plus r...
Cliquez pour lire la suite de l'article par neodante
Forum
DESSINER MCDDESSINER MCD par debinfo
Cliquez pour lire la suite par debinfo ALFRESCALFRESC par DARCIA33
Cliquez pour lire la suite par DARCIA33
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|