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.
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
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
Access - Ouvrir objet ole depuis une zone de liste [ par gio23 ]
Bonjour tout le monde! Je suis en train de creer un programme sur access, et j'ai un problème. Dans mes tables j'ai un champ de type OLE. J'ai un form
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
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
SCRIPTSCRIPT par nadialadypower
Cliquez pour lire la suite par nadialadypower
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|