Avatar billede montago Praktikant
10. februar 2007 - 19:14 Der er 1 kommentar og
1 løsning

Stream binær data fra database (ADO)

Jeg har svært ved at få ADODB objectet til at læse mine BLOB data fra MySQL database:

:::: kode :::::
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 'binary
objStream.Open fromDB("data").Value <-- ! Læsning !

lSize = objStream.size

Response.AddHeader "Content-Disposition", "inline; filename=""" & Replace(Request.querystring("name"),"""","\\""") & """"
Response.AddHeader "Content-Length", lSize

chunksize = 8192
NumberofBlocks = int(lSize / chunksize)

For lBlocks = 1 To NumberofBlocks
    If Response.IsClientConnected = False Then Exit For
    Response.BinaryWrite objStream.Read(chunksize)
    Response.Flush
Next
if NumberofBlocks*chunksize < lSize then
    Response.BinaryWrite objStream.Read(lSize - (NumberofBlocks*chunksize))
    Response.Flush
end if
:::: /kode :::::

Jeg kan (såfremt data er få bytes) bruge Response.BinaryWrite... men da vi snakker om 10-15 MB er der brug for en buffered metode til at streame data til brugeren...

nogen ide om hvad jeg kan gøre ?
Avatar billede montago Praktikant
10. februar 2007 - 20:06 #1
har fundet ud af at man skal skrive data til adodb stream objectet:

-------------.-------------.-------------.-------------.-------------.
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 'binary
objStream.Open
objStream.Write fromDB("data").Value <--

-------------.-------------.-------------.-------------.-------------.
men får en fejl :
-------------.-------------.-------------.-------------.-------------.
Response object error 'ASP 0106 : 80020005'

Type Mismatch

/files/getFile.asp, line 57

An unhandled data type was encountered.
-------------.-------------.-------------.-------------.-------------.

linien 57 = 'Response.BinaryWrite objStream.Read(chunksize)'
Avatar billede montago Praktikant
10. februar 2007 - 23:45 #2
Set objStream = Server.CreateObject("ADODB.Stream")
        objStream.type = 1
        objStream.open
        objStream.write(fromDB.fields("data").value)
        objStream.Position = 0
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester