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 :

affichage datagrid -> mises à jour quotidiennes après validation d'un formulaire


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut affichage datagrid -> mises à jour quotidiennes après validation d'un formulaire
    Bonjour,

    J'ai créé un formulaire en ASP.Net, VB.Net, SQL Server 2005 sous VS2008 destiné à être rempli par un "client" qui fait une demande d'application à des développeurs...

    Les personnes connectées ayant la possibilité de consulter le formulaire de demande, j'aimerais faire apparaître sous forme de tableau les mises à jour quotidiennes des clients, mais aussi des développeurs.

    Il me faut alors pouvoir garder, à chaque clic du bouton "valider" par un client, ou un développeur, les dates de mises à jour.

    Seulement, je ne vois pas vraiment comment procéder...

    Comment puis-je faire une liste de mises à jour (de type date...) au niveau de la base de données ? (sachant que le nombre de mises à jour n'est pas limité...)

    Auriez-vous un exemple simple pour pouvoir réaliser ceci ?

    Merci et bonne soirée !

  2. #2
    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,

    Si vous souhaitez simplement conserver qui a fait une mise à jour et quand, mais pas ce que l'utilisateur a mis à jour, il vous faut créer une table avec au moins deux colonnes :
    - une pour stocker l'utilisateur (identifiant ou nom)
    - une pour stocker la date, avec contrainte de valuation par défaut à la date courante (GETDATE() ou CURRENT_TIMESTAMP).

    Derrière votre bouton, soit vous envoyez la requête INSERT sur la colonne de l'identifiant utilisateur uniquement, soirt vous appelez une procédure stockée qui fait la même chose.

    Il vous suffit ensuite dans votre page ASP.NET d'interroger cette table.

    Si vous voulez montrer qui a modifié quoi, il vous fait créer un trigger d'audit qui stocke l'uitlisateur avec les anciennes et nouvelles valeurs de chaque ligne qui a été modifiée.
    Si vous êtes sous SQL Server 2008, vous pouvez également penser à utiliser la fonctionnalité de capture de changement de données, très puissante et faible consommatrice de ressources.

    A vous de choisir

    @++

  3. #3
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Ok merci beaucoup elsuket.

    Oui en fait j'ai d'ailleurs des champs permettant la modification de données avec la date de modification et j'aimerais faire un tableau avec ces données.

    Cependant, bien que je pense avoir compris l'idée, j'ai du mal a voir comment sa peut se passer du cpôté de la base de données...

    Je dois faire une procédure qui déclare un tableau et qui stock au fur et à mesure les dates de mises à jour à chaque clic de la personne ? et récupérer en meme temps son id... c'est sa ?

    Mais comment se passe la déclaration dans la base ? quel champ je dois avoir ?

    Merci encore !

  4. #4
    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
    Oui en fait j'ai d'ailleurs des champs permettant la modification de données avec la date de modification et j'aimerais faire un tableau avec ces données.
    Je suppose que vous parlez d'une table en base de données à partir de laquelle vous voudriez faire un rapport.
    Si tel est le cas, quelle est la structure de cette table ? (sous SQL Server Management Studio, clic-droit sur la table > Script table as > CREATE to > ...)

    Je dois faire une procédure qui déclare un tableau et qui stock au fur et à mesure les dates de mises à jour à chaque clic de la personne ? et récupérer en meme temps son id... c'est sa ?
    Pas tout à fait.
    Les tables permettent de persister de façon structurée et consistante des données.
    La table va être insérée par la procédure stockée.
    Il vous faut donc la créer d'abord la table dans la base de données.
    Je suppose que vous avez une table des utilisateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE dbo.user_modification_history
    (
    	user_modification_history_id INT NOT NULL IDENTITY CONSTRAINT PK_user_modification_history PRIMARY KEY
    	, modification_date_time DATETIME NOT NULL CONSTRAINT DF_user_modification_history__modification_date_time DEFAULT (GETDATE())
    	, modification_user_id INT NOT NULL CONSTRAINT FK_user_modification_history__modification_user_id FOREIGN KEY (modification_user_id) REFERENCES dbo.user
    )
     
    ALTER TABLE dbo.user_modification_history
    ADD CONSTRAINT UQ_user_modification_history__modification_date_time__modification_user_id
    	UNIQUE (modification_date_time, modification_user_id)

    Voici pour la procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE PROCEDURE maProcedure
    	@user_id INT
    AS
    BEGIN
    	INSERT INTO dbo.user_modification_history (modification_user_id)
    	VALUES (@user_id)
    END
    Et un appel serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC dbo.maProcedure @user_id = identifiantDeMonUtilisateur
    @++

Discussions similaires

  1. Mise à jour contrôle après suppression
    Par ThieBEN dans le forum IHM
    Réponses: 37
    Dernier message: 02/11/2007, 14h30
  2. Créer des notes mises à jour quotidiennes
    Par dinette dans le forum Access
    Réponses: 12
    Dernier message: 11/12/2006, 10h16
  3. Mise à jour quotidienne d'une table via fichier texte
    Par chooky97150 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 31/08/2006, 22h00
  4. Mise à Jour Quotidienne
    Par Cyphen dans le forum Access
    Réponses: 12
    Dernier message: 26/06/2006, 14h00
  5. Mise à jour enregistrements après impression
    Par alalau dans le forum Access
    Réponses: 2
    Dernier message: 17/12/2004, 16h13

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