---
title: "Hämta binära data från databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/176658-hämta-binära-data-från-databas"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "devotion"
published: "2009-01-31T15:20:07.000Z"
updated: "2009-02-01T20:15:46.000Z"
replies: 2
views: 354
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/176658-hämta-binära-data-från-databas"
---

# Hämta binära data från databas

## #1 — devotion, 2009-01-31T15:20Z

Hej,

Jag vill hämta binära data från ett BLOG-fält i en databas och skriva filen till en mapp.

Jag hittade denna koden:

```
<%#

    Set rs = Script.CreateObject("adodb.recordset")
    strSQL = "select logo, pub_id from pub_info"
    rs.Open strSQL, "Provider=SQLOLEDB;Initial Catalog = pubs;UserID=sa"

    Do While Not rs.EOF
          Output.Filename = CStr(rs("pub_id")) & ".gif"
          Output.BinaryWrite rs("logo")
          Output.Close
          
          rs.MoveNext
    Loop
     
    rs.Close
    Set rs = Nothing

#%>
```

Kan man göra något liknande för vbScript.

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/176658

## #2 — devotion, 2009-02-01T10:13Z

Hej igen! :)

Efter lite letande på nätet har jag fått till nedanstående kod:

```

	dim Rs, Conn, sSQL, Stream
	dim Fs, File
	
	'Öppna databasen
	Set Conn=CreateObject("ADODB.Connection")
	Conn.Open "Provider=sqloledb;Data Source=KARLSKRONA\SQLExpress;Initial Catalog=UN;User id=sa;Password=xxx;"
	
	Set Rs=CreateObject("ADODB.Recordset")
	Set Stream=CreateObject("ADODB.Stream")
	
	sSQL = "SELECT [Id], BinDocType, BinData FROM tblDocument Where ID IN (10002)"
	Rs.Open sSQL, Conn

	Do While Not Rs.EOF
		Stream.open
		Stream.type = 1
		Stream.Write Rs.Fields("BinData").Value
		Stream.SaveToFile "C:\" & CStr(Rs("Id")) & "." & Rs("BinDocType"), 1
		Stream.Close
		Rs.MoveNext
	Loop

	Set Stream=Nothing
	Rs.Close
	Set Rs = Nothing
	Set Conn = Nothing
```

Den fungerar och min fil skrivs till disk.

Men, är det rätt? Kan man optimera något, är det något jag glömt?

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/2167316

## #3 — devotion, 2009-02-01T20:15Z

Hej!

Nu ser funktionen ut så här:

```
unction GetDocument(lDocId)

	dim Rs, Conn, Stream
	dim sSQL
	dim sOutputPath, sFileName

	sOutputPath=application.setting("CommonPath") & "PdfOutput\"
	
	If not isnumeric(lDocId) then exit function

	'Öppna databasen
	Set Conn=CreateObject("ADODB.Connection")
	Conn.Open Application.sDbConnectionString
	
	Set Rs=CreateObject("ADODB.Recordset")
	Set Stream=CreateObject("ADODB.Stream")

	sSQL = "SELECT d.[BinDocType] AS DocType, d.[BinData] AS DocData, d.[Name] AS DocName" _
		& " FROM tblDocument d" _
		& " WHERE d.[Id] = " & lDocId & "" _
		& " AND d.BinDocType <> ''"

	Rs.Open sSQL, Conn

	if Rs.EOF then
		GetDocument=""
	else
		sFileName=CStr(lDocId) & "_" & Rs("DocName") & "." & Rs("DocType")
		
		Stream.open
		Stream.type = 1
		Stream.Write Rs("DocData")
		Stream.SaveToFile sOutputPath & sFileName, 1
		Stream.Close
		GetDocument=sOutputPath & sFileName
	end If

	Set Stream=Nothing
	Rs.Close
	Set Rs = Nothing
	Set Conn = Nothing

End function
```

Är det ok, eller ser ni något galet?

Mvh
Henrik

  :)

Permalänk: https://www.webforum.nu/p/2167372

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/176658-hämta-binära-data-från-databas
