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 :

Question Technique SQL-Server


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut Question Technique SQL-Server
    Bonjour à toutes et à tous,
    J'aimerais vous exposer un petit problème, alors voilà je veux stocker des fichiers dans SQL-Server (Blob ou Filestream).
    Le problème est qu'on doit pouvoir accéder au fichier via une application que nous ne maîtrisons pas. Je dois maîtriser la localisation du fichier à partir du répertoire de base.

    Il me faudrait une petite table de type:



    Le but de tous ça étant de localiser les données sur un seul serveur de données (tables et fichiers). Et de transférer les données via SQL-Server.

    J'espère avoir été assez explicite sur ce j'attend vos idées.
    Cordialement,
    Nastro

  2. #2
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par Nastro Voir le message
    Le problème est qu'on doit pouvoir accéder au fichier via une application que nous ne maîtrisons pas.
    Pourquoi vous devez utiliser l'application pour accéder aux fichiers ?

    Citation Envoyé par Nastro Voir le message
    Il me faudrait une petite table de type:

    Le but de tous ça étant de localiser les données sur un seul serveur de données (tables et fichiers). Et de transférer les données via SQL-Server.
    c'est quoi la question ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Merci de t'intéresser à mon problème

    Si je comprend bien je n'ai pas été assez clair.
    L'application que nous développons permet d'associer à un enregistrement une visualisation (exemple: jpeg,png,dwg,etc...). Aujourd'hui le chemin d'accès aux fichiers est stocké dans l'enregistrement. On veut maintenant stocker le fichier lui-même dans la base de données. Cependant la modification de ces fichiers doit être possible via des applications que nous ne maîtrisons pas.


    Quel type d'objet utiliser pour répondre au besoin : Filestream, Blob ? Ou autre que je ne connais pas ?

  4. #4
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par Nastro Voir le message
    . On veut maintenant stocker le fichier lui-même dans la base de données.
    Quel type d'objet utiliser pour répondre au besoin : Filestream, Blob ? Ou autre que je ne connais pas ?
    Je ne connais pas l'objectif de votre projet. Mais stocker des images directement dans la base de données ne me paraît pas comme une bonne idée. Lisez ceci

    Mais si vous ne pouvez pas/plus changer cette décision, vous pouvez utiliser le type de données VARBINARY(max) . vous n'avez pas indiqué la version de votre SQL Server, les types de données IMAGE et TEXT étant obsolètes !
    J'ai montré une méthode pour réaliser cette opération ici
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Tout dépend la volumétrie et la taille moyenne de vos fichiers. Cela ne sera à rien de mettre filestream si le jeu n'en vaut pas la chandelle. Par ailleurs, pour utiliser FILESTREAM, il faudra modifier les applications pour qu'elles puissent utiliser cette fonctionnalité. Dans votre cas je ne pense pas que c'est la bonne solution à adopter.

    Après vous ne dites pas comment les applications modifient les fichiers ? Sous quelle forme ? Utilisent-elles une API ? Les accès se feront directement dans la base ? Sur le système de fichiers ?

    ++

  6. #6
    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 : 44
    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
    Par défaut
    Bonjour,

    Citation Envoyé par Zinzinetti
    Mais stocker des images directement dans la base de données ne me paraît pas comme une bonne idée. Lisez ceci
    Certes, mais cet article date de 2006, et entre temps FileStream a été introduit avec SQL Server 2008 et répond à cette problématique.

    De par la documentation :

    Si les conditions suivantes sont remplies, vous devez envisager d'utiliser FILESTREAM :

    La taille des objets stockés est, en moyenne, supérieure à 1 Mo.

    L'accès en lecture rapide est important.

    Vous développez des applications qui utilisent une couche intermédiaire pour la logique d'application.

    Pour les plus petits objets, le stockage des objets blob varbinary(max) dans la base de données procure souvent de meilleures performances de diffusion en continu.
    Pour ma part j'ai déjà eu à stocker un grand nombre d'images de petite taille (quelques petits Ko) dans des colonnes de type varbinary(max).
    Je n'ai pas constaté de problème particulier, autant à l'utilisation qu'en performances.

    Par ailleurs, pour utiliser FILESTREAM, il faudra modifier les applications pour qu'elles puissent utiliser cette fonctionnalité. Dans votre cas je ne pense pas que c'est la bonne solution à adopter.
    Je valide.

    @++

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Tout d'abord merci pour les réponses.

    Avec filestream le fichier est bien stocké dans un dossier du filesystem (super) mais ce fichier si je veux l’éditer via une appli windows (fichier->ouvrir) est impossible car son nom (PathName()) est géré par sql server donc incompréhensible pour l'humain qui veut l’éditer. Ce que je voudrai c'est pouvoir gérer son path a partir du répertoire de base.
    Je cherche quelque chose comme ce que fait oracle avec son "create directory"

    Je suis donc toujours en galère....

  8. #8
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Avec Filestream il va forcément falloir passer par SQL Server ou passer par l'API dediée à cela. L'accès direct aux fichiers n'est pas possible.

    Si tu veux pouvoir faire cela il va falloir passer par SQL Server 2012 et les FILETABLE qui permet de faire ce que tu veux. Tu peux attaquer les fichiers et dossiers depuis un système de fichier et gérer les opérations habituelles que tu peux connaître.

    ++

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    C’est justement pour répondre à cette demande ou problématique de stockage des fichiers dans la base de données tout en permettant d’y accéder depuis les applications Windows, et ce, sans apporter de modifications, qu’une nouvelle fonctionnalité a été ajoutée dans SQL Server 2012 : FileTable

    A partir de SQl Server 2012, il est désormais possible de créer un nouveau type de table appelé FileTable. Un FileTable est mappé à un dossier sur le système de fichiers.

    Vous pouvez même accéder à ces dossiers dans l'Explorateur Windows, ou sur le réseau, comme un partage réseau ! vous pouvez même faire glisser et déposer des fichiers dans le dossier FileTable et créer des sous-dossiers.

    Quand vous faites cela, un des composants SQL Server intercepte les appels d'API Windows et met à jour le FileTable en conséquence.

    Les FileTables s'appuyent sur la fonctionnalité FILESTREAM déjà existante dans SQL Server 2008.

    La fonctionnalité FileTable apporte une prise en charge de l'espace de noms de fichier Windows et la compatibilité des applications Windows avec les données de fichier stockées dans SQL Server. FileTable permet à une application d'intégrer ses composants de stockage et de gestion des données, et fournit des services SQL Server intégrés (notamment la recherche sémantique et en texte intégral) sur des données et des métadonnées non structurées.

    En d'autres termes, FileTable permet maintenant de stocker des fichiers et des documents dans des tables spéciales dans SQL Server, appelées FileTables, mais d'y accéder à partir d'applications Windows comme si ils avaient été stockés dans le système de fichiers, sans apporter de modifications à vos applications clientes.

    Pour plus de détails :
    http://msdn.microsoft.com/fr-fr/library/ff929144.aspx

  10. #10
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Merci à tous pour vos conseils, je vais me pencher sur la solution du FileTable présent avec SQL Server 2012.

    Je vous tiendrais au courant du résultat.

    Cordialement,
    Nastro

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Je confirme la solution FileTable dans SQL Server 2012 est la solution.
    Attention plein de contrainte sur la version et la solution (si je ne me trompe pas):
    - On peut dire adieu a xp et 2003,
    - Pas d'authentification SQL Server
    - et tous ce que je ne soupçonne pas...

    Merci encore au intervenant.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Par défaut
    C'est une solution plus qu'intérressante.

    Parmi les limitations
    - pas de réplication (pourquoi tant de haine).
    - pas de cryptage au niveau de la base.

    Par contre je n'ai rien vu concernant l'histoire du XP (je viens de tester l'accès sans aucun soucis).

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

Discussions similaires

  1. Diverses questions sur SQL Server
    Par kedare dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/07/2010, 18h33
  2. Question simple sql server
    Par mihaispr dans le forum Développement
    Réponses: 3
    Dernier message: 16/10/2009, 13h09
  3. Définition de 2 terme technique SQL SERVER 2005
    Par Ry_Yo dans le forum Développement
    Réponses: 2
    Dernier message: 09/07/2009, 09h16
  4. question su sql server 2005 express edition
    Par nass06 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/04/2006, 20h15
  5. Quelques questions sur SQL Server 2000
    Par yinyang dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/12/2005, 19h39

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