Accueil > > > ADODB.STREAM, ENTRÉE D'OBJET OLE DANS UNE BASE DE DONNÉE, RÉCUPÉRATION D'OBJET OLE D'UNE BASE POUR EN FAIRE UN FICHIER
ADODB.STREAM, ENTRÉE D'OBJET OLE DANS UNE BASE DE DONNÉE, RÉCUPÉRATION D'OBJET OLE D'UNE BASE POUR EN FAIRE UN FICHIER
Information sur la source
Description
Bien entendu ce n'est pas de moi et c'est vu revu et tout le toutim sur internet mais je n'ai pas trouvé cela ici alors je le mets. Il s'agit ici de créer a partir d'un fichier existant sur votre disque dur un objet OLE ( fichier ) dans une base de donnée ACCESS et par la suite de le ressortir de la base de données pour en refaire un fichier nommé comme vous le désirez.
Source
- <!--METADATA TYPE="typelib"
- UUID="00000205-0000-0010-8000-00AA006D2EA4"
- NAME="ADODB Type Library"
- -->
-
- 'Surtout vous ne devez pas oublier ces premières lignes
- 'Elles définissent la dll à importer pour l'objet que nous allons utiliser
-
- 'PREMIERE PARTIE ----- ON ENTRE LE FICHIER DANS LA BASE
-
- 'Je passe ici la connection avec la base que l'on peut trouver abondemment
- Dim Stream
- Dim Rs
-
- 'J ouvre la table qui va recueillir mon fichier
- Set Rs = Server.CreateObject("ADODB.Recordset")
- Rs.open "matable", conn, 3, 3
-
- 'Je crée mon objet Stream
- Set Stream = Server.CreateObject("ADODB.Stream")
-
- 'on définit le type de fichier à lire ici je met 1 mais vous pouvez aussi mettre adTypeBinary
- Stream.Type = 1
- Stream.Open
-
- 'On envoi l'objet Stream lire le contenu du fichier en question
- Stream.loadFromFile server.MapPath("fichier.extension")
-
- 'On crée un nouvel enregistrement dans la table
- rs.addnew
-
- 'Et lors on affecte au champ désiré le contenu binaire du fichier
- rs.fields("fichier") = Stream.read
-
- 'On met a jour
- rs.update
- 'On oublie pas de fermer les objets
- rs.close
- stream.close
- Set rs=nothing
- Set stream=nothing
- response.redirect "laoulonveut.extension"
-
- 'SECONDE PARTIE ----- RECUPERATION DU FICHIER DANS LA BASE DE DONNEES
-
- <!--METADATA TYPE="typelib"
- UUID="00000205-0000-0010-8000-00AA006D2EA4"
- NAME="ADODB Type Library"
- -->
- 'Ne pas oublier d'invoquer la dll
- 'Comme precedemment, je passe la connection avec la base
-
- 'Connection avec la table a l'endroit ou est mon fichier
- Set rs = server.CreateObject("ADODB.Recordset")
- SQL="SELECT * FROM photos WHERE id like 1"
- RS.open SQL, conn, 3, 3
-
- 'Creation Objet ADODB.Stream
- Set Stream = server.CreateObject("ADODB.Stream")
-
- 'Le type de contenu qui va lui être proposé
- Stream.Type = adTypeBinary
- Stream.Open
-
- 'On envoi le code binaire dans le cache
- Stream.write rs.fields("photo").value
-
- 'Puis on enregistre le fichier avec le code binaire enregistré
- 'En mode Ecrasement adSaveCreateOverWrite
- Stream.SaveToFile "repertoire:\sous-rep\nomdufichier.ext", adSaveCreateOverWrite
-
- 'et on ferme tous les objets comme precedemment ( partie 1 )
- 'Vous pouvez aller voir le fichier est créé
-
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
'Surtout vous ne devez pas oublier ces premières lignes
'Elles définissent la dll à importer pour l'objet que nous allons utiliser
'PREMIERE PARTIE ----- ON ENTRE LE FICHIER DANS LA BASE
'Je passe ici la connection avec la base que l'on peut trouver abondemment
Dim Stream
Dim Rs
'J ouvre la table qui va recueillir mon fichier
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.open "matable", conn, 3, 3
'Je crée mon objet Stream
Set Stream = Server.CreateObject("ADODB.Stream")
'on définit le type de fichier à lire ici je met 1 mais vous pouvez aussi mettre adTypeBinary
Stream.Type = 1
Stream.Open
'On envoi l'objet Stream lire le contenu du fichier en question
Stream.loadFromFile server.MapPath("fichier.extension")
'On crée un nouvel enregistrement dans la table
rs.addnew
'Et lors on affecte au champ désiré le contenu binaire du fichier
rs.fields("fichier") = Stream.read
'On met a jour
rs.update
'On oublie pas de fermer les objets
rs.close
stream.close
Set rs=nothing
Set stream=nothing
response.redirect "laoulonveut.extension"
'SECONDE PARTIE ----- RECUPERATION DU FICHIER DANS LA BASE DE DONNEES
<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
'Ne pas oublier d'invoquer la dll
'Comme precedemment, je passe la connection avec la base
'Connection avec la table a l'endroit ou est mon fichier
Set rs = server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM photos WHERE id like 1"
RS.open SQL, conn, 3, 3
'Creation Objet ADODB.Stream
Set Stream = server.CreateObject("ADODB.Stream")
'Le type de contenu qui va lui être proposé
Stream.Type = adTypeBinary
Stream.Open
'On envoi le code binaire dans le cache
Stream.write rs.fields("photo").value
'Puis on enregistre le fichier avec le code binaire enregistré
'En mode Ecrasement adSaveCreateOverWrite
Stream.SaveToFile "repertoire:\sous-rep\nomdufichier.ext", adSaveCreateOverWrite
'et on ferme tous les objets comme precedemment ( partie 1 )
'Vous pouvez aller voir le fichier est créé
Conclusion
Il est a noter que ce script ne fonctionnera bien entendu pas si vous avez fais la mise a jour de sécurité Windows puisque celle-ci bloque la creation d'objet stream purement et simplement. Cette mise à jour a été faite suite à une faille exploitée par les virusmen :D. Pour plus d'informations à ce sujet allez donc voir le site de microsoft...
Je vous souhaite une bonne fin de journée.
Historique
- 25 novembre 2005 15:05:11 :
- oupsss mise à jour des mots clés ( rapide non ? ;) je suis sur que personne est venu avant )
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
(2) ASP et ORACLE [ par JclO ]
Bonjour,Merci pour l'aide apporté il est vrai qu'en utilisant OLE DB apparement je me connecte à la Base car je n'est plus de message d'erreur. Malheu
Problème d'ajout de données dans base SQL [ par HolyDev ]
Cher ASPsienVoila je voudrais ajouter des données dans une base SQL, mais à à la ligne :RecordSet("Nom du champ")=Valeurj'ai l'erreur :Microsoft OLE D
Aficher un champs d'une table ACCESS de type Objet OLE [ par usef80 ]
Bonjour,J'ai un problème: Dans ma base de données ACCESS, j'ai une table employé dont les champs sont: id_employe, nom, département adresse et photo.
Probleme Autorisation SELECT refusée sur l'objet 'xxxx', base de données 'xxxxDatabase', schéma 'dbo'. [ par tarek1967 ]
j ai finalement trouve comment ajouter aspnet.mais j ai ce problemeAutorisation SELECT refusée sur l'objet 'xxxx', base de données 'xxxxDatabase', sch
impression champ ole [ par nadovchka ]
J'ai un controle richtextrtf sur la feuille par le quel on peut saisir des données textes graphiques. j'ai une base de données dans laquelle j'ai un
Ouvrir Objet OLE [ par Le newbie ]
Salut,Je voudrais savoir comment je peux ouvrir un fivhier pdf ou snp sachant que cela fait parti des enregistrements de ma base access (en OLE). N'ay
erreur de connection base access [ par francki67 ]
Bonjours je suis sous vista et je crée une page ASP avec une base ACCESS ou je veut me connecter voila mon script:<html> <head><meta
Comment lire et ecrire dans une base Access [ par Claude Azoulai ]
Bonjour à tousJe travail sous Visual Web Developer 2005 Express edition et je suis nouveau dans ce domaine.Mon Problème :J'ai une première page qui en
Comment connecter ma base SQL 2005 pour gérer la gestion des utilisateurs [ par vinzemuls ]
Bonjour, voilà je suis en entreprise et la gestion des utilisateurs qui avait été géré par ASP.net avec sa base de données (aspnetdb.mdl) ne fonctionn
Recherche Dans base de données [ par gatita_dev ]
Bonjour,Je veux effectuer un moteur de recherche dans une base de données, quand je cherche un seul mot ça marche mais dés qu'il y a plusieurs mot ça
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : FILEUPLOAD RE : FILEUPLOAD par noux
Cliquez pour lire la suite par noux
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|