Stocker une photo dans une base de donnée sql server

Fermé
herman512 - 20 juil. 2013 à 14:16
 bokombejeanpapin - 2 juil. 2015 à 12:56
Bonjour,

j'ai un projet de fin d'année qui porte sur une application de gestion des etudiants d'une ecole j'aimerais sauvegarder les photos des etudiants dans une base de donnée sql server a travers visual Studio .net
donc SVP aider moi a le faire
merci

1 réponse

MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
20 juil. 2013 à 14:32
Bonjour,

Tu as 2 possibilités :
1- Tu stockes le chemin de la photo dans ta BDD
https://forums.commentcamarche.net/forum/affich-10948327-comment-stoker-une-image-dans-sqlserver
https://sqlpro.developpez.com/cours/stockerimages/

2- Tu stockes directement la photo dans ta base
https://docs.microsoft.com/fr-fr/sql/relational-databases/blob/filetables-sql-server?redirectedfrom=MSDN&view=sql-server-ver15
https://docs.microsoft.com/fr-fr/sql/relational-databases/blob/binary-large-object-blob-data-sql-server?redirectedfrom=MSDN&view=sql-server-ver15

Il y a pas mal de débat sur POUR ou CONTRE le stockage de fichiers directement en BDD. Perso, pour des petits fichiers, je pense qu'il est plus pratique de les stocker directement dans la base. Ça évite des problèmes potentiels genre photo supprimée via explorateur et lien toujours existant dans la base, etc. et ça simplifie les sauvegardes puisqu'il suffit de sauvegarder uniquement la base.

Pour accéder aux fichiers directement stockés en base, il s'agit d'un FileStream classique donc simple à gérer.
4
herman512 Messages postés 13 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 24 juin 2014
20 juil. 2013 à 14:57
merci beaucoup je vais essayé
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 20/07/2013 à 15:05
Je viens de retrouver un bout de code que j'avais fait il y a longtemps pour des tests. Ça peut t'aider même si ce n'est pas commenté ;-)
(c'est du VB.NET pour la partie lecture)

Pour enregistrer la photo :
'Simple requête SQL à exécuter avec les bons paramètres
DECLARE @img AS VARBINARY(MAX)
SELECT @img = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET(BULK 'PATH_DE_LA_PHOTO', SINGLE_BLOB) AS x
INSERT INTO FICHIERS (FICHIER_PID ,FICHIER) VALUES (NewID() ,@img)



Pour lire une photo :
Dim ConStr As String = ConStr = "Data Source=SERVEUR_BDD;Initial Catalog=BASE_DE_DONNEES; user id='USER'; password='PWD';"
Dim con As New SqlClient.SqlConnection(ConStr)
con.Open()
Dim sqlCommand As New SqlClient.SqlCommand()
sqlCommand.Connection = con
sqlCommand.CommandText = "SELECT FICHIER FROM FICHIERS WHERE FICHIER_ID = 'xxx'"
Dim Result As Object = sqlCommand.ExecuteScalar
If IsDBNull(Result) Then
'PAS DE LOGO, ON NE FAIT RIEN
Else
Dim buffer As Byte() = Result
' Utilisation de la mémoire comme magasin de stockage du fichier
Dim ms As MemoryStream = New MemoryStream(buffer)
Dim image As Image = image.FromStream(ms)
PictureBox.Image = image
End If
0
herman512 Messages postés 13 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 24 juin 2014
20 juil. 2013 à 15:46
ok je vais essayé voire merci
0
hanadakia Messages postés 43 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 30 mai 2018
Modifié par hanadakia le 22/05/2014 à 13:16
Bonjour,
SVP est ce que vous pouvez me donner le code de lire une photo en visual foxpro?
Merci Beaucoup.
0
bokombejeanpapin
2 juil. 2015 à 12:56
comment je peut lire cette photo en langage java?
0