OVH Cloud OVH Cloud

Pdf dans Sql.

4 réponses
Avatar
MrChris
Bonjour,

J'aimerais savoir si il est possible de d'inclure un pdf dans une base
sql...
(peut être avec bulk insert ???)

Je m'explique :
j'ai la table MesPDF suivante :

champ ID : int
champ pdf : ??? (varbinary peut être), c'est le champ dans lequel doit se
trouver le pdf.

Comment faire ?

Merci
MrChris

4 réponses

Avatar
MrChris
Sûrement grâce au lien ci-dessous,

http://support.microsoft.com/?id17034

Mais du coup, je suis un peut perdu...

C'est quoi la différence entre blob et bulk ???

MrChris
Avatar
MrChris
Ah ! ok ok !!

Blob est un type de donnée sql (large binary)
Bulk est une commande T-SQL !

bon, restons calme...
Ca va bien se passer...

"MrChris"
Avatar
VUILLERMET Jacques
Enregistrer un fichier PDF ou doc ou jpg c'est pareil : on stocke des bits
dans un champ.
Si dans un même champ il peut y avoir plusieurs types de fichier alors il
faut mieux stocker aussi le type MIME pour une restitution aisée sur le Web.

Voici un exemple sommaire : il est à adapter et à faire évoluer en fonction
du besoin !!!

L'écriture est en VBA, la lecture par ASP.

Le script de création de la table :
CREATE TABLE [dbo].[TableStream] (
[IdStream] [int] IDENTITY (1, 1) NOT NULL ,
[BitsStream] [image] NULL ,
[Libelle] [char] (100) NULL ,
[TypeMime] [char] (100) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Le code d'écriture dans la table (déclarer la référence vers ADO au
préalable) :

Sub test()

'A paramétrer :
Const strCnx = "Provider=SQLOLEDB.1;..."

Dim strLibelle As String
Dim strChemin As String
Dim strTypeMime As String
Dim lngLongueur As Long
Dim byteContenuFichier() As Byte
Dim rstObj As ADODB.Recordset

strLibelle = "Fichier image"
strChemin = "F:InetpubStreamStockageAthlete.jpg"
strTypeMime = "image/jpeg"
'strLibelle = "Document Word"
'strCheminFS = "F:InetpubStreamStockageUnDoc.doc"
'strTypeMime = "application/msword"

lngLongueur = FileLen(strChemin)
ReDim byteContenuFichier(lngLongueur)

Reset
Open strChemin For Binary Access Read As #1
Get #1, , byteContenuFichier
Close #1

Set rstObj = CreateObject("ADODB.recordset")
rstObj.Open "TableStream", strCnx, 2, 3, 2

rstObj.addnew
rstObj("Libelle") = strLibelle
rstObj("TypeMime") = strTypeMime
rstObj("BitsStream").appendchunk (byteContenuFichier)
rstObj.Update

rstObj.Close
Set rstObj = Nothing

End Sub



Le code de lecture à partir d'une page ASP.
<%
option explicit

dim ObjRst
dim StrSql
dim strTypeMime

StrSql = "SELECT * FROM TableStream WHERE IdStream"
set ObjRst = server.createObject("ADODB.recordset")
ObjRst.Open StrSql, Application("AppMonDSN")
strTypeMime = objrst("TypeMime")
response.contenttype = strTypeMime
response.binarywrite objrst("BitsStream")
objrst.close
set objrst = nothing
%>

Jacques.


"MrChris" a écrit dans le
message de news: #
Bonjour,

J'aimerais savoir si il est possible de d'inclure un pdf dans une base
sql...
(peut être avec bulk insert ???)

Je m'explique :
j'ai la table MesPDF suivante :

champ ID : int
champ pdf : ??? (varbinary peut être), c'est le champ dans lequel doit se
trouver le pdf.

Comment faire ?

Merci
MrChris




Avatar
MrChris
Super !
Merci beaucoup !
J'avais réussit à mettre le pdf dans la base.
Il me manquait juste l'association du type Mime !

Merci Encore !
MrChris