Soyez le premier à donner votre avis sur cette source.
Snippet vu 22 583 fois - Téléchargée 28 fois
'Pour commencer une page local pour mon exemple je choisi envoi.asp 'Ne pas oublier d'importer la dll permettant d'utiliser ADODB.Stream <!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> 'Ensuite la fameuse connection avec la base SQL Server Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base" 'On selectionne ensuite la table sensée contenir les images Set rs = server.CreateObject("ADODB.Recordset") SQL="SELECT * FROM images" RS.open SQL, conn, 3, 3 'On ouvre l'objet STREAM Set Stream = server.CreateObject("ADODB.Stream") 'On définit le type de données a lire ( ici données binaires, vous pouvez aussi mettre 1 à la place de adbinary ) Stream.Type = adTypeBinary Stream.Open 'On définit le fichier a Uploader Stream.loadFromFile ("c:\monrep\monfichier.extension") 'On crée un nouvel enregistrement dans la table rs.addnew 'Mon champ image recoit les données binaires rs.fields("image") = Stream.read 'Mise à jour de la base de données rs.update 'Fermeture des objets rs.close stream.close Set rs=nothing Set stream=nothing response.redirect "adressedelapagedistante" '---------------------------------------------------------------- 'Intervient maintenant la page distante 'Toujours ne pas oublier la dll <!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> 'Connection à la base SQL Server Conn = "DRIVER={SQL SERVER};user id=login; Password=motdepasse ; server=adresse de votre base; database=nom de la base" 'Connection a la table Set rs = server.CreateObject("ADODB.Recordset") 'Je vais chercher le premier enregistrement dans mon exemple SQL="SELECT * FROM images WHERE id like 1" RS.open SQL, conn, 3, 3 'Ouverture de l'objet STREAM Set Stream = server.CreateObject("ADODB.Stream") 'On définit le type de données a lire ( ici données binaire, vous pouvez aussi mettre 1 à la place de adbinary ) Stream.Type = adTypeBinary Stream.Open 'On recupère les données comprise dans le champ Stream.write rs.fields("image").value 'Maintenant on crée le fichier sur le serveur distant 'Avec une adresse physique 'Ici le mode d'écriture du fichier est en écrasement Stream.SaveToFile "cheminphysique\lenomdufichier.extension", adSaveCreateOverWrite 'On ferme tous les objets rs.close stream.close Set rs=nothing Set stream=nothing ' Il ne reste plus qu'a vérifier ;)
16 déc. 2011 à 17:52
j'ai un soucis au niveau de la dll.
comment je peux importer la dll pour utiliser ADODB.Stream ?
merci d'avance
5 oct. 2006 à 15:43
il a deja un tres bon code qui permet de ne le faire qu'avec les images.
http://www.aspfr.com/codes/ENREGISTRER-FICHIERS-DANS-BASE-DONNEES-RESTITUER_32582.aspx
pour ce qui est la connection distante a Access... bien sur ca peut se faire si le fichier se situe dans un repertoire partagé... mais en effet avec SQL Server, ca reste plus simple.
je dois t'avouer que j'avais trouvé tout ce qu'il me fallait dans l'exemple cité plus haut, mais merci toujours pour ta source. ca me donnera peut etre le moyen de contourner un problème que je me pose en ce moment.
Bon coding!
merci
13 janv. 2006 à 16:20
29 nov. 2005 à 12:22
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.