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

Développement SQL Server Discussion :

Stocker la date de modification d'un fichier [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Stocker la date de modification d'un fichier
    Bonjour à tous,
    est-il possible de lire et stocker la date de modification d'un fichier, dont le chemin est stocké dans un champ?

    je pensais que ce serait facile, mais il semble que ce ne soit plus possible depuis SQL server 2008

    merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Qu'est-ce que tu entends par "fichier" et "champs" ?

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Le fichier est stocké sur un serveur de fichier.
    et pour le champ, c'est le lien vers ce fichier, qui est dans une case d'une table sql
    ex: \\serveur\emplacement\monfichier.jpg

    j'espère être un peu + clair

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Utilisez vous FILESTREAM ?

    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 à l'essai
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    je ne connaissais pas FILESTREAM, mais d'après ce que je vois, il s'agit d'une façon de stocker dans une table des données de type image ou document?
    Si c'est le cas, ça ne correspond pas car je ne maîtrise pas le lieu de stockage, je n'ai qu'un "lien" vers le fichier stocké sur un serveur de fichiers.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Non, c'est plus sophistiqué que cela ....

    Le FILESTREAM correspond à ce que la norme SQL apelle le DATALINK. C'est en fait un pointeur interne, dans une colonne de table, pointant vers un fichier externe dont le lieu de stockage est bien un répertoire du disque. Mais c'est SQL Server qui gère le fichier et non plus directement l'OS (les fichiers sont sous le contrôle du SGBDR).
    Avantages :
    cela fait partie de la transaction (en cas de rollback, le fichier n'est pas déposé ou supprimé)
    en cas de sauvegarde de la base, les fichiers sont concernés comme s'ils étaient dans la base
    le SGBDR maintient l'intégrité des données y compris pour les fichiers. Par exemple s'il y a dépendance (FOREIGN KEY) en cas de suppression de la table maître, les lignes filles peuvent être supprimées dans la foulé (ON DELETE CASCADE) et les fichiers disparaissent.

    En fait en externalisant les fichiers comme tu l'as fait, il n'y a aucun moyen de garantir l'intégrité. Peu à peu tu te retrouve avec des fichiers en trop ou en moins et en cas de restauration, c'est le merde.

    Il y a enfin un dernier moyen c'est la FileTable qui est un dérivé du FILESTREAM et qui consiste à créer une table "système" pointant vers un répertoire de ton système de fichier pour les manipuler en SQL comme par le système de fichier. Dans ce cas, dans la "filetable" tu verras le nombre d'octets de tes fichiers.

    A lire sur le sujet :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    Tu peut bien entendu "greffer" une filetable sur le répertoire de ton choix...

    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/ * * * * *

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour,

    Ce n'est pas trop le rôle d'un SGBDR que d'aller récupérer ce type d'informations. Pourquoi ne pas passer par un programme externe qui récupère la date du fichier et mets à jour la base de données, ou éventuellement une fonction SQL CLR ?

    Pouvez vous en dire plus sur le contexte ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonsoir,
    merci pour l'info du filetable: je vais l'étudier pour voir l'intérêt et voir également le filestream.
    en fait, dans mon projet, il y a énormément de médias qui sont dans beaucoup de dossiers différents.
    Ces fichiers sont créés par des personnes différentes.
    Effectivement, si le fichier est supprimé, le lien ne doit plus exister, et c'est bien le cas, une routine à base de xp_filexist s'occupe d'éliminer les "liens cassés".

    C'est vrai que ce n'est pas trop le rôle du SGBDR de récupérer ces dates, en tous cas c'est ce que microsoft nous a fait comprendre en supprimant cette fonctionnalité
    je pense donc que ce sera un programme VBnet qui maintiendra cette donnée.

  9. #9
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    une chose proche de ce ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $fileList = Get-ChildItem -Path $SourceDir -Filter *.xlsx -File |  ForEach-Object -Process {$_.LastWriteTime}
    #Write-SQL table
    $DestServer = 'servername'
    $DestDB = 'dbname'
    $Schema = 'sch'
    $DestTbl = 'tblname'
    foreach ($file in $fileList){
    (import-excel -path $file ‑NoHeader -erroraction stop ) |
    write-sqltabledata -servername $DestServer -databasename $DestDB -schemaname $Schema -tablename $DestTbl -force -erroraction stop}

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par joomy78 Voir le message
    Bonsoir,
    merci pour l'info du filetable: je vais l'étudier pour voir l'intérêt et voir également le filestream.
    en fait, dans mon projet, il y a énormément de médias qui sont dans beaucoup de dossiers différents.
    Ces fichiers sont créés par des personnes différentes.
    Effectivement, si le fichier est supprimé, le lien ne doit plus exister, et c'est bien le cas, une routine à base de xp_filexist s'occupe d'éliminer les "liens cassés".
    [/CODE]Extrémement dangereux, car votre utilisateur doit avec le contrôle total du serveur pour ce faire.... Il pourra par exemple détruire toutes vos bases par injection de SQL ![CODE]
    C'est vrai que ce n'est pas trop le rôle du SGBDR de récupérer ces dates, en tous cas c'est ce que microsoft nous a fait comprendre en supprimant cette fonctionnalité
    je pense donc que ce sera un programme VBnet qui maintiendra cette donnée.
    Bof, bof !

    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/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la date de modification d'un fichier
    Par sylviev dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2007, 09h58
  2. [FTP] date dernière modif d'1 fichier distant
    Par renaudjuif dans le forum Langage
    Réponses: 1
    Dernier message: 24/09/2006, 01h24
  3. Comment trouver la dernière date de modification d'un fichier
    Par je®ome dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/05/2006, 13h23
  4. Réponses: 20
    Dernier message: 17/03/2005, 15h26
  5. [langage] Date de modification d'un fichier
    Par Cyspak dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2003, 15h49

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