begin process at 2010 02 09 20:59:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > 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

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Classé sous :stream, binaire, ole, objet, base Niveau :Débutant Date de création :25/11/2005 Date de mise à jour :25/11/2005 15:05:11 Vu :14 952

Auteur : Nicolas_kojack

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 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

UTILISATION DE FTP.EXE DE WINDOWS EN ASP
UPLOAD D'IMAGES VIA ADODB.STREAM ET SQL SERVER

 Sources de la même categorie

Source avec Zip GESTION_ENSEIGNANTS par Elmarzougui
Source avec Zip ZONE MEMBRE EN ASP "E-MEMBRES1.0" par cmaelc
Source avec Zip Source avec une capture Source .NET (Dotnet) ADMINISTRATION BASE DE DONNÉES ORACLE par chbayah
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION D'UN DATASET par ManuAntibes
Source avec Zip Source .NET (Dotnet) INSERTION / RECUPERATION D'IMAGE STOCKEE DANS UNE DB MS SQL ... par jimmy69

 Sources en rapport avec celle ci

Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET par jesusonline
Source avec Zip BASE DE DONNEE DES CODES POSTAUX par Caius_junioricus
ENVOI (SAUVEGARDE) D'UN FICHIER BINAIRE SUR UN SITE DISTANT ... par Chrigou
UPLOAD D'IMAGES VIA ADODB.STREAM ET SQL SERVER par Nicolas_kojack
Source avec Zip Source avec une capture Source .NET (Dotnet) ENREGISTRER DES FICHIERS DANS UNE BASE DE DONNÉES ET LES RES... par jesusonline

Commentaires et avis

Commentaire de Nurgle le 26/11/2005 10:19:53 administrateur CS

intéressant en effet ! c'est simplissime et ça fonctionne :D

Par contre tu pourrais préciser un petit peu pour cette histoire de mise à jour Windows, car mon PC est à jour et pourtant j'utilises les Stream assez souvent...et ça marche toujours !

Nurgle

Commentaire de Nicolas_kojack le 26/11/2005 17:37:26

Lis cet article, tu pourras constater que le correctif desactive la fonction adodb.stream...
http://www.zdnet.fr/actualites/internet/0,39020774,39160026,00.htm

 Ajouter un commentaire


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:&lt;html&gt; &lt;head&gt;&lt;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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales