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

Windows Forms Discussion :

image dans une base access


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 55
    Points
    55
    Par défaut image dans une base access
    bonjour,
    comment enregistrer une image dans une base access et la recharger après?
    apparament il faudrait passer par du binaire mais je ne comprend pas trop le truc

    merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 119
    Points
    25 119
    Par défaut
    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
            Public Function ImageToByteTab(ByVal image As System.Drawing.Image) As Byte()
                    Try
                        Dim m As New System.IO.MemoryStream
                        image.Save(m, System.Drawing.Imaging.ImageFormat.Png)
                        Return m.GetBuffer
                    Catch ex As Exception
                        Return Nothing
                    End Try
                End Function
     
     
              Public Function ByteTabToImage(ByVal Bytes() As Byte) As System.Drawing.Image
                    Try
                        Return System.Drawing.Image.FromStream(New System.IO.MemoryStream(Bytes))
                    Catch ex As Exception
                        Return Nothing
                    End Try
                End Function
    après il faut avoir un champ dans la table de type tableau d'octets (je ne sais pas si ca existe sous access (ca l'est sur sql serveur en tout cas)

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Dans access, il n'y a pas de champs "BLOB". Il existe un champs pour les textes de grandes tailles, mais son utilisation avec du binaire n'est pas garantie. (de plus il est indexable, ce qui est largement sous optimal).

    Sinon, il y a les champs OLE qui doivent pouvoir être utilisés pour cet usage.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 119
    Points
    25 119
    Par défaut
    dans le pire des cas, changer les octets en caractères via asc() et ca fonctionnera dans un champ texte
    et pour des petites images style jpeg ou png ca devrai rentrer

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    dans le pire des cas, changer les octets en caractères via asc() et ca fonctionnera dans un champ texte
    et pour des petites images style jpeg ou png ca devrai rentrer

    ????
    Asc est une fonction qui renvoie le code asc d'un caractère.

    Si je traduis bien tu veux suggérer plutôt l'inverse de ce que tu dis : changer le binaire en texte, par exemple avec un truc du style :

    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
     
                    byte[] buffImage;
     
                    //    Charger buffUImage ici                                
                    //....
     
                    StringBuilder imageInChar = new StringBuilder();
                    foreach(byte b in buffImage)
                    {
                        imageInChar.Append("_");
                        imageInChar.Append(b);
                    }
                    String valueToWrite = imageInChar.ToString();
                    // ecrire dans la BD ici
                    // .....
    Et relire en reconstituant les byte à partir des codes ascii stockés entre deux "_" .
    C'est possible, quoique très lent (et très très crade).

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 119
    Points
    25 119
    Par défaut
    c'est vrai que ca doit pas etre ce qu'il y a de plus rapide ...
    et donc il n'y a pas de champs binaires sous access ?

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    c'est vrai que ca doit pas etre ce qu'il y a de plus rapide ...
    et donc il n'y a pas de champs binaires sous access ?
    Ce qui y ressemble le plus sont les champs OLE. Mais je n'en sais pas plus, Access n'a jamais été ma tasse de thé et j'ai toujours refusé de l'utiliser comme base sous-jacente à une application (sauf une fois à l'époque de VB-6).

    De toute maniére avec une base de données aussi peu performante, je n'essaierais même pas de stocker les images dedans; à sa place je générerais des fichiers dans un répertoire avec un pointeur sur le nom, lui même stocké dans un champ de la base (d'ailleurs Oracle a une implémentation pour ce type de stockage - fichier + lien - pour les gros objets, même si il est capable de les stocker directement).

    Maintenant, ça dépend de ce que fait son appli aussi : notamment si c'est pour stocker des images destinées à la modification, je n'envisagerais même pas le stockage ne base; si c'est en consultation uniquement, pourquoi pas, même si, encore une fois, avec Access je ne le ferais pas.

Discussions similaires

  1. [Base de donnée] inserer une image dans une base de donnee access
    Par mohamine1989 dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/09/2011, 21h42
  2. inserer une image dans une base de donnee access
    Par mohamine1989 dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/08/2011, 09h48
  3. [VS2005] insertion d'images dans une base access
    Par lightedge dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/09/2007, 09h25
  4. Réponses: 3
    Dernier message: 01/07/2006, 11h27
  5. [VBA - ACCESS] - Images dans une base de données
    Par fredhali2000 dans le forum Access
    Réponses: 1
    Dernier message: 22/02/2006, 10h22

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