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

PostgreSQL Discussion :

Référencement d'un champs d'une table


Sujet :

PostgreSQL

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 310
    Points : 133
    Points
    133
    Par défaut Référencement d'un champs d'une table
    Bonjour à tous!

    Je développe une application en Visual Basic 6 et j'utilise postgreSQL. comme SEGDR.
    Je vous explique mon problème;
    Dans ma base de données j'ai les tables suitantes:
    -connexion qui contien les utilisateurs autorisés à se connecter à l'application;
    -les autres tables (j'ai par exemple la table client)
    -évenement qui est renseigner suite aux actions suivantes:INSERT, UPDATE,DELETE. Pour cela j'utilise un trigger et une fonction en plpgsql

    Par exemple quand j'atoute un nouveau client, la table evenement est automatiquement renseignée suite au déclenchement du trigger.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Mon trigger:
    
    CREATE TRIGGER évenement 
      AFTER INSERT OR UPDATE OR DELETE
      ON client
      FOR EACH ROW
      EXECUTE PROCEDURE process_client();
    
    Ma fonction:qui permet de renseigner la table evenement
    
    CREATE OR REPLACE FUNCTION process_client()
      RETURNS "trigger" AS
    $BODY$
        BEGIN
            IF (TG_OP = 'DELETE') THEN
                INSERT INTO evenement SELECT now(), TG_TABLE_NAME, 'Suppression de ', OLD.*;
                RETURN OLD;
            ELSIF (TG_OP = 'UPDATE') THEN
                INSERT INTO evenementSELECT now(), TG_TABLE_NAME, 'Modification de ', OLD.*,'Nouvelle valeur', NEW.*;
                RETURN NEW;
            ELSIF (TG_OP = 'INSERT') THEN
                INSERT INTO evenement SELECT now(), TG_TABLE_NAME,'AJOUT de', NEW.*;
                RETURN NEW;
    	END IF;
            RETURN NULL; 
        END;
    $BODY$
      LANGUAGE 'plpgsql' VOLATILE;
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO client(nom,prenom) VALUES('Dupond','Dupont')
    dans la table evenement j'obtiendrai ceci(àpres un SELECT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date/heure               | Opération        |nom     |prénom   |user 
    2008-11-22 12:44:57.984  | ajout du client  |Dupond |Dupont      |?
    (?) ma question est:comment faire pour ajouter le nom de l'utilisateur?

  2. #2
    Membre actif Avatar de SaintAmand
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 174
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par rolls Voir le message
    (?) ma question est:comment faire pour ajouter le nom de l'utilisateur?
    Bonjour,

    Si chaque utilisateur dispose d'un compte dans la BD et que l'application utilise se compte pour se connecter à la BD alors vous pouvez utiliser la fonction current_user.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 310
    Points : 133
    Points
    133
    Par défaut
    Bonjour
    merci je le teste de suite

Discussions similaires

  1. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  2. nom des champs d'une table
    Par K-ZimiR dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/04/2004, 14h21
  3. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00

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